我正在尝试使用 uwsgi 运行 python3 flask web 应用程序。
如果我运行/usr/bin/uwsgi --ini /var/www/QCQuan/uwsgi_config.ini --logto /tmp/log
则uwsgi
失败并且日志文件显示:
Python version: 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0]
Set PythonHome to /home/pdiracdelta/.conda/envs/qcquan
ImportError: No module named site
尽管我确实调整了我的 uwsgi_config.ini
[uwsgi]
...
venv = /home/pdiracdelta/.conda/envs/qcquan
plugins = python
...
使用我安装的 python 插件apt-get install uwsgi-plugin-python
并使用具有所有正确包且仅具有 python3 的 conda 虚拟环境。
看起来 uwsgi 仍在尝试使用我系统的 /usr/bin/python,它指向 python2。而且它似乎还加载了它前它设置了 PythonHome。
我如何告诉 uwsgi 使用 conda 环境提供的 python (=python3)?
答案1
通过在我的 中安装uwsgi-plugin-python3
和使用plugins = python3
(而不是 python(2))解决了uwsgi_config.ini
。
我不充分理解为什么这样做有效,因为 uwsgi 似乎在设置 PythonHome 之前仍然加载 python:
Python version: 3.6.5 (default, Apr 1 2018, 05:46:30) [GCC 7.3.0]
Set PythonHome to /home/pdiracdelta/.conda/envs/qcquan
因此,尽管它确实可以访问 conda 环境中的所有包,但我仍然怀疑它正在使用我的系统的 /usr/bin/python3。