我想创建自己的API,所以我用apache2,uwsgi,flask和python安顿下来 . 我按照这些指示here
我换了模块:
-
libapache2-mod-wsgi - > libapache2-mod-wsgi-py3
-
python-dev - > python3-dev
-
python-pip - > python3-pip
我改变了命令:
-
sudo virtualenv whitedust - > sudo virtualenv -p python3.6 whitedust
-
source envname / bin / activate - > source whitedust / bin / activate
此时我正常继续指南并使系统正常工作 . 但是当我试图添加我自己的文件时,它给出了一个错误
Apache / 2.4.18(Ubuntu)mod_wsgi / 4.3.0 Python / 3.5.2配置
Apache error.log:
[Wed Jun 27 15:12:53.838360 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] mod_wsgi (pid=24654): Target WSGI script '/var/www/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module.
[Wed Jun 27 15:12:53.838397 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] mod_wsgi (pid=24654): Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'.
[Wed Jun 27 15:12:53.838553 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] Traceback (most recent call last):
[Wed Jun 27 15:12:53.838572 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] File "/var/www/FlaskApp/flaskapp.wsgi", line 11, in <module>
[Wed Jun 27 15:12:53.838574 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] from FlaskApp import app as application
[Wed Jun 27 15:12:53.838577 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] File "/var/www/FlaskApp/FlaskApp/__init__.py", line 3, in <module>
[Wed Jun 27 15:12:53.838579 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] import utils
[Wed Jun 27 15:12:53.838587 2018] [wsgi:error] [pid 24654:tid 140042661635840] [remote 192.168.1.6:38961] ImportError: No module named 'utils'
这是apache conf文件:
<VirtualHost *:80>
ProxyPreserveHost On
ServerAdmin webmaster@localhost
WSGIScriptAlias /api /var/www/FlaskApp/flaskapp.wsgi
<Directory /var/www/FlaskApp/FlaskApp/>
Order allow,deny
Allow from all
</Directory>
ProxyPass /api !
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
ErrorDocument 404 /index.html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
当系统工作时,我确实检查了__init __:py文件在哪里看到它自己
路径:/ var / www / FlaskApp / FlaskApp
这在python或虚拟环境中在apache之外运行时都有效
我也尝试通过pip安装模块,但它们不起作用
1 回答
尝试在wsgi文件中的导入之前添加以下行: