web-dev-qa-db-ja.com

Flask-WSGI-'flask'という名前のモジュールはありません

私は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>
8
Davixxa

解決策を見つけるときの礼儀正しい振る舞いと同様に、私はもう少しググったところ、どういうわけか、ネイサンニコルズによるYouTubeのコメントから解決策を見つけることができました:

https://www.digitalocean.com/community/tutorials/how-to-run-Django-with-mod_wsgi-and-Apache-with-a-virtualenv-python-environment-on-a-debian- vps

  1. 編集/etc/Apache2/sites-available/FlaskApp.conf
  2. "WSGIScriptAlias"行の前に次の2行を追加します。

    WSGIDaemonProcess FlaskApp python-path=/var/www/FlaskApp:/var/www/FlaskApp/FlaskApp/venv/lib/python2.7/site-packages
    WSGIProcessGroup FlaskApp
    
  3. 「サービスApache2再起動」でApacheを再起動します

もちろん、Pythonバージョンを私が実行しているpython3.5に置き換えました。

8
Davixxa

最初に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を置くことに注意してください

1
charan ghumman
  1. http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html によると、.

  2. 編集する必要があります/etc/Apache2/sites-available/FlaskApp.conf

  3. これらをWSGIScriptAliasの上に追加します

    WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskAppWSGIProcessGroup FlaskApp

ちなみに同じ問題に遭遇して修正しました。

0
NingAnMe