Skip to main content
 首页 » 编程设计

python之使用 gunicorn 时未加载虚拟环境路径

2025年02月15日5birdshome

我有一个脚本可以加载安装在 virtualenv

中的 pip
from google.cloud import pubsub 

当我像这样运行脚本时

(my_virtual_environment): python script.py 

它有效。但是当我通过 gunicorn

运行它时
gunicorn -c gunicorn_config.py script.py 

我明白了

from google.cloud import pubsub 
ImportError: No module named cloud 

当我在两种情况下都打印 sys.path 时,我得到的是 sys.path 在一种情况下包含 virtualenv 路径

[......., /Users/partuck/.virtualenvs/my_virtual_environment/lib/python2.7/plat-darwin',......] 

在另一种情况下(通过 gunicorn 运行),我没有看到它。 当运行 pip freeze 时,gunicorn 存在。

请您参考如下方法:

所以,事实证明 gunicorn 默认到它之前加载的位置。

我的解决办法是在目录下cd然后运行gunicorn命令

cd my_directory 
<loads the virtualenv> using auto env # workon my_virtualenv 
gunicorn -c gunicorn_config.py script.py