(WSGI - Apache2/Flask) 导入错误:无法导入名称应用程序



有人可以帮我吗?我尝试了一切。重命名,移动文件,没有任何变化。我使用 WSGI Apache 在本地主机:80 上运行我的 Flask 应用程序。

这是我的文件结构

我的烧瓶.wsgi 文件

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/flask_project/")
from flask_project import app as application

我的初始化.py文件

#! /bin/usr/python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def homepage():
return "Hi there, how ya doin?"
if __name__ == "__main__":
app.run()

我的 flaskapp.conf

<VirtualHost *:80>
ServerName localhost
ServerAdmin youemail@email.com
WSGIScriptAlias / /var/www/flask_project/flask.wsgi
<Directory /var/www/flask_project/flask_project/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/flask_project/flask_project/static
<Directory /var/www/flask_project/flask_project/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

如果有人知道问题是什么,那就太好了。提前致谢

第一次检查你的路径

根据我对你的 apache2 配置和 wsgi 的理解,你的路径是:

/var/www/flask_project/flask_project/application

虽然我认为你错过了html目录:

/var/www/html/flask_project/flask_project/application

第二次检查是否启用了 WSGI

但是,如果这确实是您的道路,那么很可能您在安装后没有启用 WSGI。

尝试:

  • sudo a2enmod wsgi
  • sudo service apache2 restart

你需要虚拟环境吗?

此外,您是否在烧瓶应用中使用 virtualenv (venv(?如果是这样,您需要在WSGI中激活它。

例:

activate_this=/var/www/html/flask_project/flask_project/benv/bin/activate_this.py
execfile(activate_this, dict(__file__=activate_this))

最新更新