Nginx & uWSGI:ImportError:没有名为 site 的模块

Nginx & uWSGI:ImportError:没有名为 site 的模块

ImportError: No module named site根据我的 uWSGI 日志,我收到一个错误:

测试项目.ini:

[uwsgi]
chdir = /home/%n/app
module = %n.wsgi
home = /home/%n/app/venv
master = true
processes = 10
chmod-socket = 664
socket = /home/%n/uwsgi/socket
daemonize = /home/%n/uwsgi/log
pidfile = /home/%n/uwsgi/pid

nginx的:

server {
        listen 8888;
        server_name 192.168.88.187;

        # Set up django static file serving
        location /static {
                alias /home/test_proj/app/static/;
        }

        # pass all non-static request to uWSGI
        location / {
                uwsgi_pass unix:///home/test_proj/uwsgi/socket;
                include uwsgi_params;
        }
}

点冻结:

Django==1.7.1
django-braces==1.4.0
django-cors-headers==0.13
django-dynamic-settings==1.1.0
django-oauth-toolkit==0.7.2
django-uuidfield==0.5.0
djangorestframework==3.0.0
oauthlib==0.7.2
psycopg2==2.5.4
six==1.8.0

我还全局安装了 uWSGI。ini文件中是否缺少某些内容,还是因为我的 nginx 设置?我尝试了不同的ini文件组合。

我也尝试过no-site = true在里面添加ini,但我发现不应该将它添加到文件中,ini即使它能消除错误并产生不同的错误。

我也关注了教程但还是没有运气。

谢谢。

答案1

它不起作用的原因是我uwsgi使用常规pip命令安装的。由于我的机器中同时安装了 Python 2 和 3,因此我需要uwsgi使用 进行安装pip3

我运行的命令:pip3 install uwsgi

答案2

您收到此错误的原因是因为在 home 指令中指定的虚拟环境中找不到模块(site、os 等)。使用正确版本的 pip 可能对您有用,但仅仅是因为它解决了您的虚拟环境问题。

答案3

如果您在 venv 上,则使用 uwsgi 在 venv 中驻留的完整路径运行 uwsgi /usr/venv/bin/uwsgi。默认 uwsgi 可能驻留在其他地方。

尝试which uwsgi找到它。

相关内容