質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2824閲覧

anaconda3 + mod_wsgi + FlaskでModuleNotFoundError が出ます

tfline_w

総合スコア37

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/03/08 10:58

centOS6 に、Flask の環境を構築しようとしていますが、ModuleNotFoundErrorでつまづいています。

・Anaconda3 をインストール。インストールしたバージョンは、Anaconda3-2019.10-Linux-x86_64.sh。
/usr/local/anaconda3 にインストール

Python 3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0] :: Anaconda, Inc. on linux ```  ・簡単なFlaskアプリケーションを作成し、単体で実行し、正常にアクセスできることを確認 ```Python3 * Serving Flask app "runService" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: on INFO:werkzeug: * Running on http://0.0.0.0:5004/ (Press CTRL+C to quit) INFO:werkzeug: * Restarting with stat WARNING:werkzeug: * Debugger is active! INFO:werkzeug: * Debugger PIN: 104-257-565

・mod_wsgi を利用して、Apache2.4 と連携するために設定。

※mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.soは、anaconda3 のsite-packages/mod_wsgi/server/ からコピー

LoadModule wsgi_module modules/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so <VirtualHost *:80> ServerName myserver WSGIScriptAlias /testFlask /home/hoge/testFlask/adapter.wsgi WSGIDaemonProcess testApp user=hoge group=hoge threads=5 WSGIScriptReloading On <Directory "/home/hoge/testFlask/testApp"> WSGIProcessGroup testApp WSGIApplicationGroup %{GLOBAL} AllowOverride All Require all granted </Directory>

・apache2 を再起動して、アクセスすると、

Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named 'encodings'

のエラーになります。

・Python のパスをApaches が見えていないのかと考え、Apache2 の起動時に、環境変数として

export PYTHONPATH="/usr/local/anaconda3/lib/python3.7/"

と指定、再起動して、アクセスしたところ、

File "/home/hoge/testFlask/runService.py", line 1, in <module> from flask import Flask ModuleNotFoundError: No module named 'flask'

のエラーになりました。

どのようにPYTHONPATH を指定するのが正解なのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.soのファイルをコピーするのではなく、
LoadModule wsgi_moduleのあとに、もともとの絶対パスで書いてあげればいいのではなかったかと。(環境変数は不要)

plain

1LoadModule wsgi_module /usr/local/anaconda3/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so 2<VirtualHost *:80> 3...

投稿2020/03/11 14:19

bsdfan

総合スコア4560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tfline_w

2020/03/11 23:33

ありがとうございます。試してみます。
tfline_w

2020/03/12 01:12

Anaconda3 のlib/python3.7/site-packages の下を確認してみたところ、なぜか、mod_wsgi がなかったので、Anaconda3 をもう一度、インストールしてみましたが、やはりありませんでした。 Anaconda のサイトから、最新版(Anaconda3-2020.02-Linux-x86_64.sh) を落として、インストールし直しましたが、やはり入っていません。含まれなくなったのでしょうか。 やむなく、pip install mod_wsgi でインストールした後、絶対パスで記述したら、環境変数なしでも無事に成功しました。 ただ、試しに、modules の下に、so ファイルをコピーしてみたのですが、やはり成功しました。 結局、原因はよくわからなかったので、同様の現象が発生したら、anaconda3 を再インストールしてみることにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問