我正在运行 Arch Linux 机器并且设置了 Python 3.4 虚拟环境。
我有一个由 Emperor 管理的 uwsgi vassal,它指定了以下 ini:(为简洁起见,部分内容被删减)
[uwsgi]
virtualenv = /opt/lib/virtualenvs/bartek
socket = /tmp/bartek.sock
module = app
callable = app
plugins = python
当我运行此程序并查看 uwsgi 日志文件时,我始终得到以下信息:
uwsgi socket 0 bound to UNIX address /tmp/bartek.sock fd 3
Python version: 3.4.1 (default, May 19 2014, 17:23:49) [GCC 4.9.0 20140507 (prerelease)]
Set PythonHome to /opt/lib/virtualenvs/bartek
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
这似乎与虚拟环境有关?当我virtualenv
从 uwsgi 配置中删除时,它会因缺少包而失败,而不是抱怨此编码。不过,我更愿意继续使用虚拟环境!
有任何想法吗?
答案1
我遇到了同样的问题,我猜这是由 virtualenv 参数引起的,当我将 virtualenv 更改为 / 时,一切都正常。