我目前正在尝试导入一个名为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