私はSentdex 'Flaskチュートリアルに従っています。彼はVenvを使用してフラスコを設定していますが、Python Venv。Flask=グローバルにインストールしようとしましたが、それでも機能しません。サーバーを参照しようとすると、500内部サーバーエラーが返されます
いつものようですno module named flask
エラー。
errorFGL.log
[Sun Feb 05 11:22:32.043925 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] mod_wsgi (pid=26340): Target WSGI script '/var/www-fgl/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module.
[Sun Feb 05 11:22:32.044105 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] mod_wsgi (pid=26340): Exception occurred processing WSGI script '/var/www-fgl/FlaskApp/flaskapp.wsgi'.
[Sun Feb 05 11:22:32.044243 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] Traceback (most recent call last):
[Sun Feb 05 11:22:32.045011 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] File "/var/www-fgl/FlaskApp/flaskapp.wsgi", line 8, in <module>
[Sun Feb 05 11:22:32.045070 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] from FlaskApp import app as application
[Sun Feb 05 11:22:32.045549 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] File "/var/www-fgl/FlaskApp/FlaskApp/__init__.py", line 1, in <module>
[Sun Feb 05 11:22:32.045594 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] from flask import Flask
[Sun Feb 05 11:22:32.045689 2017] [wsgi:error] [pid 26340:tid 118578538694400] [client 86.52.205.25:49814] ImportError: No module named 'flask'
__ init __。py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def homepage():
return "Success"
if __name__ == "__main__":
app.run()
flaskapp.wsgi
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www-fgl/FlaskApp/")
from FlaskApp import app as application
application.secret_key = '[REDACTED]'
fgl-database.conf
<VirtualHost *:80>
ServerName [REDACTED]
WSGIScriptAlias / /var/www-fgl/FlaskApp/flaskapp.wsgi
<Directory /var/www-fgl>
Require all granted
</Directory>
Alias /static /var/www-fgl/FlaskApp/FlaskApp/static
<Directory /var/www-fgl/FlaskApp/FlaskApp/static/>
Require all granted
</Directory>
ErrorLog ${Apache_LOG_DIR}/errorFGL.log
LogLevel warn
CustomLog ${Apache_LOG_DIR}/accessFGL.log combined
</VirtualHost>
解決策を見つけるときの礼儀正しい振る舞いと同様に、私はもう少しググったところ、どういうわけか、ネイサンニコルズによるYouTubeのコメントから解決策を見つけることができました:
/etc/Apache2/sites-available/FlaskApp.conf
"WSGIScriptAlias"行の前に次の2行を追加します。
WSGIDaemonProcess FlaskApp python-path=/var/www/FlaskApp:/var/www/FlaskApp/FlaskApp/venv/lib/python2.7/site-packages
WSGIProcessGroup FlaskApp
もちろん、Pythonバージョンを私が実行しているpython3.5に置き換えました。
最初にpython-virtualenvをインストールします
次に、Flaskかつらを置いたappディレクトリからpython files run
virtualenv env
これにより、Flaskディレクトリ内にenvディレクトリが作成され、ローカルpythonインストールが含まれます。
次に、このコマンドsource env/bin/activate
で仮想環境をアクティブ化します
仮想環境をアクティブ化した後、pip install flask
を実行します
pip --version
を実行します
あなたはこのようなものを見るでしょう
/var/www/html/flaskapp/env/local/lib/python2.7/site-packages/pipからのpip 19.0.3(python 2.7)
これをコピーpython path
WSGIDaemonProcess FlaskApp python-path=/var/www/html/flaskapp:/var/www/html/flaskapp/env/local/lib/python2.7/site-packages
WSGIProcessGroup FlaskApp
Apacheのsites-availableディレクトリのFlaskApp.confに上記の行を追加します
Pip --versionを実行した後に得られるものにpython-pathを置くことに注意してください
http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html によると、.
編集する必要があります/etc/Apache2/sites-available/FlaskApp.conf
これらをWSGIScriptAlias
の上に追加します
WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskApp
WSGIProcessGroup FlaskApp
ちなみに同じ問題に遭遇して修正しました。