导入错误:未命名模块 Flask

我得到了 500 启动我的服务器时内部服务器错误 Flask,apache2 和 Python 3.4.2.

起初我安装了 Flask 没有创建虚拟环境,因此认为它可能是一个原因。 但是,稍后我为我的应用程序创建了一个虚拟环境:


python3.4 -m venv venv
source venv/bin/activate
/venv/ pip3 install Flask


我通过运行我的应用程序来检查 python3 __init.py

,

它在本地电脑上工作。
然后我重新启动了我的服务器 apache2 仍然收到了同样的错误。 请从错误日志文件中查看以下输出:


mod_wsgi /pid=25667/: Target WSGI script '/var/www/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module.
mod_wsgi /pid=25667/: Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'.
Traceback /most recent call last/:
File "/var/www/FlaskApp/flaskapp.wsgi", line 11, in <module>
from XYZ import app as application
File "/var/www/FlaskApp/XYZ/__init__.py", line 1, in <module>
from flask import Flask, render_template
ImportError: No module named flask


有什么建议如何解决它?

FlaskApp.conf 文件B. etc/apache2/sites-available


<virtualhost *:80="">

ServerName xyz.com

ServerAlias www.xyz.com

ServerAdmin contact@xyz.com
WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
<directory flaskapp="" var="" www="" xyz=""></directory>
Order allow,deny
Allow from all

Alias /static /var/www/FlaskApp/XYZ/static
<directory flaskapp="" static="" var="" www="" xyz=""></directory>
Order allow,deny
Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</virtualhost>


以下是来自错误日志文件的行 apache2:


AH00489: Apache/2.4.10 /Ubuntu/ mod_wsgi/3.5 Python/2.7.8 configured -- resuming normal operations


看起来 mod_wsgi 试图使用 2.7.8, 但不是 3.4. 我该如何解决它?
</module></module>
已邀请:

君笑尘

赞同来自:

似乎我终于解决了她!
我将以下代码行添加到文件中 FlaskApp.conf, 位于B. etc/apache2/sites-available:


WSGIPythonPath /var/www/FlaskApp/XYZ/venv/:/var/www/FlaskApp/XYZ/venv/lib/python3.4/site-packages


这条线必须前进 VirtualHost!

然后我重启 apache 还有我的网站只适用 www, 没有 www 不起作用。

喜特乐

赞同来自:

我改变了我的 xx.wsgi 用途 execfile// 用来 exec//. 这就是它在终于运作的情况下看起来。


activate_this = '/opt/flask/project_name/py3venv/bin/activate_this.py'
exec/open/activate_this/.read//, dict/__file__=activate_this//

import sys
sys.path.insert/0, '/opt/flask/project_name'/

from project_app_name import app as application

江南孤鹜

赞同来自:

mod_wsgi

, 最有可能,不知道你的 virtualenv, 他只需要说他使用它,而不是系统默认系统环境。

https://docs.djangoproject.com ... alenv
在文件中 Django 必须有帮助。

如果这不是那么请发布您的文件
flaskapp.wsgi


httpd.conf

.

要回复问题请先登录注册