![带有 flask 和 python3 conda 环境的 uwsgi 正在加载 python2](https://linux22.com/image/727152/%E5%B8%A6%E6%9C%89%20flask%20%E5%92%8C%20python3%20conda%20%E7%8E%AF%E5%A2%83%E7%9A%84%20uwsgi%20%E6%AD%A3%E5%9C%A8%E5%8A%A0%E8%BD%BD%20python2.png)
我正在尝试使用 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。