从apache uwsgi运行时无法在python中导入我自己的.py模块

视听

我想创建自己的API,因此选择了apache2,uwsgi,flask和python。在这里遵循了这些指示

我更改了模块:

  • libapache2-mod-wsgi-> libapache2-mod-wsgi-py3
  • python-dev-> python3-dev
  • python-pip-> python3-pip

我更改了命令:

  • sudo virtualenv whitedust-> sudo virtualenv -p python3.6 whitedust
  • 源环境名称/ bin /激活->源白尘/ bin /激活

至此,我可以正常继续使用指南,并使系统正常运行。但是当我尝试添加自己的文件时,出现了错误

已配置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 [email protected]

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安装模块,但它们不起作用

威基A.

尝试在wsgi文件中的导入之前添加以下行:

import sys
sys.path.append("/path/to/directory/containing/utils")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章