单个python导入在运行mod_wsgi实例时失败

时间:2018-08-09 20:55:50

标签: python-3.x apache flask mod-wsgi authy

我目前正在尝试导入一个名为Authy的模块。但是无论出于什么原因,当从mod_WSGI调用/使用它时,它似乎都不会导入。 真的很奇怪,这是 only 包不起作用吗?

我已通过以下方式验证了它的安装:

 source ../env/bin/activate

 which pip
 /home/ubuntu/env/bin/pip

 pip --version
 pip 18.0 from /home/ubuntu/env/lib/python3.6/site-packages/pip (python 3.6)

并使用了grep / frozen

 pip freeze | grep authy
 authy==2.2.1

我也检查了python版本是否有效:

 python -c 'import sys; print(sys.prefix)'
 /home/ubuntu/env

并确认我可以使用python shell导入模块:

python manage.py shell
>>> import authy
>>> import sys
>>> sys.executable
'/home/ubuntu/env/bin/python'
>>>

我什至将服务器作为独立应用程序运行,并且在导入时运行了服务器而没有错误:

 python manage.py runserver -h 0.0.0.0 -p 5000
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 xx.xx.xxx.xx - - [09/Aug/2018 15:23:55] "POST /auth/ HTTP/1.1" 200 -

最后,我通过抛出异常来检查正在运行的实例。它表明我正在使用virtualenv。我使用了自定义异常:

 raise RequestError(sys.executable)

...然后我得到了

 {
     "message": "/home/ubuntu/env/bin/python",
     "status": "error"
 }

但是...当我通过apache / mod_wsgi运行实际代码时,我受到欢迎:

 500 Internal Server Error

与此在日志中:

 [Thu Aug 09 15:33:45.987352 2018] [wsgi:error] [pid 4829] [remote xx.xx.xxx.xx:12245]   File "/var/www/xxx/app/auth/controllers.py", line 12, in <module>
 [Thu Aug 09 15:33:45.987354 2018] [wsgi:error] [pid 4829] [remote xx.xx.xxx.xx:12245]     from authy.api import AuthyApiClient
 [Thu Aug 09 15:33:45.987371 2018] [wsgi:error] [pid 4829] [remote xx.xx.xxx.xx:12245] ImportError: No module named 'authy'

对于此模块为何无法导入的任何帮助,我将非常感谢。而且我也检查了循环进口。

我唯一能想到的就是与许可有关。

更新:

这也可能有用。

 python manage.py shell
 >>> exit()

 sudo -u flaskuser python manage.py shell
 Traceback (most recent call last):
   File "manage.py", line 4, in <module>
     from app import create_app
   File "/home/ubuntu/xxx/app/__init__.py", line 2, in <module>
import flask
 ImportError: No module named flask

0 个答案:

没有答案