带有虚拟环境的WSGI应用中的ImportError

时间:2019-02-21 20:50:31

标签: python apache centos virtualenv wsgi

我有一个Flask应用程序,该应用程序在具有Apache 2.4.6,Python 3.6.6的Centos服务器上运行。当我直接通过Python启动我的应用程序并激活virtualenv时,一切正常。

但是,从Apache开始时,我得到以下ImportError

File "/var/www/my_app/util/database.py", line 13, in <module>
     import psycopg2 
File "/var/www/my_app/my-venv/lib/python3.6/site-packages/psycopg2/__init__.py", line 50, in <module>
     from psycopg2._psycopg import (                     # noqa
ImportError: No module named _psycopg

因此它无法导入psycopg2或它的子模块。当我在相同的virtualenv中启动Python控制台时,从相同的路径导入库可以正常工作。我不认为这是特定于psycopg2的,因为我在mysqlclient中遇到了同样的问题。

我确实检查过apache用户是否可以完全读取virtualenv。我感到奇怪的是,确实我在psycopg2目录中找不到任何模块名称_psycopg,但是当我从控制台内部导入库时(或直接通过Python启动应用程序时)为何起作用呢? ?

感谢任何指针!

0 个答案:

没有答案