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
找到它。