![](/img/trans.png)
[英]uwsgi + Flask + virtualenv ImportError: no module named site
[英]Django, uwsgi, nginx, virtualenv, ImportError: No module named site
我有一个Django应用程序和一个虚拟环境,我尝试在nginx + uwsgi下运行它。 我按照这里描述的那样配置了整个系统。 我也有CentOS 7。
但是,我得到了着名的“ImportError:No module named site”。 这里没有关于堆栈溢出的其他主题帮我解决了这个问题。
在uwsgi的日志中,我有以下两行:
Set PythonHome to /hedgehog/.virtualenv/hedgehog
ImportError: No module named site
/etc/uwsgi/sites/hedgehog.ini:
[uwsgi]
project = hedgehog
username = hedgehog
base = /var/www/%(username)/code
chdir = /var/www/hedgehog/code
home = /%(username)/.virtualenv/%(username)
module = %(username).wsgi:application
master = true
processes = 5
uid = %(username)
socket = /run/uwsgi/%(project).sock
chown-socket = %(username):nginx
chmod-socket = 660
vacuum = true
logto = /var/www/%(username)/log/uwsgi.log
/etc/systemd/system/uwsgi.service:
[Unit]
Description=uWSGI Emperor service
[Service]
ExecStartPre=/usr/bin/bash -c 'mkdir -p /run/uwsgi; chown hedgehog:nginx/run/uwsgi'
ExecStart=/usr/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
[Install]
WantedBy=multi-user.target
该应用程序位于/ var / www / hedgehog / code中。
似乎uwsgi不知何故不使用virtualenv。 我已经尝试将其添加到ini文件中:
plugins = python
virtualenv = %(home)
它没有帮助。
但是,如果我在这个virtualenv中运行python解释器中的“import site”,它就不会出错:
[rreimche@rreimche-web sites]$ sudo -u hedgehog -H bash -l
[sudo] password for rreimche:
[hedgehog@rreimche-web sites]$ python
Python 2.7.5 (default, Jun 24 2015, 00:41:19)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import site
>>> exit()
我有同样的错误和错误:我错误地使用了Python3 virtualenv。 一旦我使用了Python2.7 virtualenv就可以了。
干杯
您不需要在配置中使用virtualenv条目,因为它与home条目的选项相同。 /%(username)/.virtualenv/%(username)应解析为/hedgehog/.virtualenv/hedgehog。 ls -l /hedgehog/.virtualenv/hedgehog说什么? 您可能还想检查您是否正在为正在使用创建virtualenv的python版本加载python插件。 请粘贴更多日志,可能会有更多关于错误的提示。
当我将virtualenv切换为使用Python 3时,这也发生在我身上,它在Python 2.7下运行良好。 这是我如何解决它:
更换
plugins = python
同
plugins = python3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.