繁体   English   中英

Django,uwsgi,nginx,virtualenv,ImportError:没有名为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM