gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:30:26 25 4
gpt4 key购买 nike

我在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com