簡體   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