python - 设置PythonHome为/var/www/virtualenvs/myenv/ImportError : No module named site

标签 python django python-3.x uwsgi

我在使用 python3.4 和 virtualenv 时遇到了很多困难。

项目在本地运行良好,但部署后,我收到 502 Bad Gateway。我查看了 uwsgi 日志,我看到了这个:

uwsgi socket 0 bound to UNIX address /var/www/mysite/live.sock fd 6 
Python version: 2.7.9 (default, Mar  1 2015, 13:01:26)  [GCC 4.9.2] 
Set PythonHome to /var/www/virtualenvs/myenv/ 
ImportError: No module named site

我的 uwsgi 设置是:

[uwsgi]
socket = /var/www/mysite/live.sock
chdir = /var/www/mysite
module = project.wsgi:application
virtualenv = /var/www/virtualenvs/myenv/
buffer-size = 4096
processes = 40
home = /var/www/virtualenvs/myenv/
plugin = python34
env = DJANGO_SETTINGS_MODULE=project.settings
enable-threads = True
single-interpreter = True
uid = www-data
gid = www-data
vacuum = True
disable-logging = true
logger = file:/var/www/mysite/log/uwsgi_err.log

我是否缺少有关 python3 的内容?非常感谢任何帮助

最佳答案

uWSGI 正在使用 python 插件来运行您的应用程序。不幸的是,用于构建 uWSGI 插件的 python 版本和来自你的应用程序 virtualenv 的 python 版本必须匹配(第一和第二位数字)。

默认情况下,python 插件嵌入在 uWSGI 二进制文件中。在上述情况下,它是使用 python 2.7 构建的。

您可以通过两种可能的方式修复它。第一个是使用不同的 python 版本编译 uWSGI,第二个是在没有 python 插件的情况下构建 uWSGI 并分别构建 python 插件(使用不同的 python 版本)。

对于其中的每一个,您都需要 uWSGI 源。

要用不同的python版本构建uWSGI,你需要做的就是:

PYTHON=python3.4 make

在没有 python 插件(和一些其他插件)的情况下构建 uWSGI:

make nolang

用于构建 uWSGI python 插件(你必须有 uWSGI 而没有已经构建的插件)

PYTHON=python3.4 ./uwsgi --build-plugin "plugins/python python34"

现在,您可以将您的插件复制到某个全局位置(例如/usr/local/lib/uwsgi),替换系统中的 uWSGI 二进制文件并启动您的 uWSGI 服务器:

plugins-dir = /usr/local/lib/uwsgi
plugin = python35

为 python 3.5 使用加载的插件运行 uWSGI 实例

关于python - 设置PythonHome为/var/www/virtualenvs/myenv/ImportError : No module named site,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34752235/

相关文章:

python - argparse 和单元测试 python

Django - 删除 HTTPS 重定向

python - 如何有效地将具有一定周期性的列表拆分为多个列表?

python - 读取文件时出现 UnicodeEncodeError

python - 我想使用 IronPython 绘制 visio 图

python - 将整数格式化为带前导零的字符串的最佳方法?

django - 对于我所有的外键,我应该在 Django 中使用 User 还是 UserProfile?

django - 扩展 Django 用户模型

python-3.x - 在单个平滑 SVR 曲线上获得奇怪/奇怪的重复 SVR 图

Python 将音频文件转换为 MP3