【问题标题】:Can't import my own .py modules in python when run from apache uwsgi从 apache uwsgi 运行时,无法在 python 中导入我自己的 .py 模块
【发布时间】:2018-12-06 09:09:36
【问题描述】:

我想创建自己的 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
  • 源 envname/bin/activate -> 源 whitedust/bin/activate

此时我继续正常引导并让系统正常工作。 但是当我尝试添加我自己的文件时,它给出了一个错误

Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/3.5.2 已配置

Apache 错误日志:

[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 配置文件:

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

【问题讨论】:

    标签: python apache flask uwsgi importerror


    【解决方案1】:

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

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

    【讨论】:

    • nwm 我得到了依赖项
    猜你喜欢
    • 1970-01-01
    • 2012-03-12
    • 2019-11-10
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2016-05-14
    • 2018-06-21
    相关资源
    最近更新 更多