热门标签:
Q:

Flask-WSGI-没有名为'flask'的模块

我一直在关注Sentdex的Flask教程。 他正在使用Venv来设置他的flask,但没有将他的Python设置为与Venv一起工作。 我已经尝试在全球范围内安装Flask-但它仍然不起作用。 尝试浏览到服务器返回500内部服务器错误

我得到了通常的no module named flask错误。

errorFGL。日志

[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-数据库。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>
原网址
A:

我浪费了大约25分钟的时间来找到解决方案,在遵循我能找到的所有其他资源之后,我也做了以下工作:

sudo apt-get install libapache2-mod-wsgi-py3

确保在libapache2-mod-wsgi-py3末尾有'-py3',否则运行时将默认为Python2.7

资料来源:https://vishnut.me/blog/ec2-flask-apache-setup.html

所有回答

共 5 条

author avatar

正如在找到解决方案时的礼貌行为一样,我在google上搜索了更多,并以某种方式设法从Nathan Nichols在这里的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"行之前添加以下两行:

    WSGIDaemonProcess FlaskApp python-path=/var/www/FlaskApp:/var/www/FlaskApp/FlaskApp/venv/lib/python2.7/site-packages
    WSGIProcessGroup FlaskApp
    
  3. 使用"service apache2restart"重新启动Apache

我当然用python3.5替换了Python版本,这就是我正在运行的内容。

author avatar

首先安装python-virtualenv

然后从Flask应用程序目录中运行wigs python文件

virtualenv env

这将在Flask目录中创建一个目录,并包含本地python安装。

接下来通过这个命令激活虚拟环境source env/bin/activate

激活虚拟环境后runpip install flask

运行pip --version

你会看到这样的事情

pip19.0.3来自/var/www/html/flaskapp/env/local/lib/python2.7/site-packages/pip(python2.7)

复制此python路径

 WSGIDaemonProcess FlaskApp python-path=/var/www/html/flaskapp:/var/www/html/flaskapp/env/local/lib/python2.7/site-packages
WSGIProcessGroup FlaskApp

在FlaskApp中添加上述行。conf in sites-apache的可用目录

注意put python-path运行pip--version后得到的

author avatar

没有什么对我有用,但我只是在我的.py和.wsgi文件瞧它的工作:

here pythonVirtual 是我的Python虚拟目录

author avatar
  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/FlaskApp WSGIProcessGroup FlaskApp

我遇到了同样的问题,并顺便修复它。

author avatar

见本页底部:https://flask.palletsprojects.com/en/1.1.x/deploying/mod_wsgi/#configuring-apache

它说过吗?:

对于Python3,将以下行添加到您的顶部。wsgi文件:

activate_this = '/path/to/env/bin/activate_this.py'
with open(activate_this) as file_:
    exec(file_.read(), dict(__file__=activate_this))

其中/path/to/env是您安装Flask的任何虚拟环境的路径,正如其他人在此线程中所描述的那样。 这里描述的"python-path"和其他一些VirtualHost配置是不必要的。

相似问题