我正在尝试使用Nginx + uwsgi部署Django应用程序。 我创build了一个虚拟环境(virtualenv),并将uwsgi和Django同时安装在虚拟环境(即虚拟环境的本地环境)中。 我没有全球性的Django和uwsgi。 当我运行uwsgi –ini project.ini时,出现'ImportError:No module named django.core.wsgi'exception:
from django.core.wsgi import get_wsgi_application ImportError: No module named django.core.wsgi unable to load app 0 (mountpoint='') (callable not found or import error) *** no app loaded. going in full dynamic mode *** *** uWsgi is running in multiple interpreter mode *** spawned uWsgi master process (pid: 5987) spawned uWsgi worker 1 (pid: 5988,cores: 1) spawned uWsgi worker 2 (pid: 5989,cores: 1) spawned uWsgi worker 3 (pid: 5990,cores: 1) spawned uWsgi worker 4 (pid: 5991,cores: 1)
根据我的search,如果你使用的是Django1.5或更低版本,build议把env和pythonpathvariables放在ini中。 但是,我使用Django 1.7,所以我没有把它们放在一边。 这是我的project.ini:
#project.ini file [uwsgi] # Django-related settings # the base directory (full path) chdir = /root/virtualenv/project # Django wsgi file module = project.wsgi:application # the virtualenv (full path) home = /root/virtualenv # process-related settings # master master = true # maximum number of worker processes processes = 4 # the socket (use the full path to be safe socket = /root/virtualenv/project/project.sock # ... with appropriate permissions - may be needed chmod-socket = 666 chown-socket = root:root # clear environment on exit vacuum = true # other config options uid = root gid = root processes = 4 daemonize = /var/log/uwsgi/project.log no-site = True
我将如何解决这个问题? 我已经坚持了一天。 任何想法,不胜感激。 提前致谢!
为什么我的uWsgi找不到我的Django应用程序?
Nginx子域和域重写w代理传递
Django部署:削减Apache的开销
OSX上的Python os.getenv(Django 1.4)
Apache剥去“授权”标题
Django不断地将URL从http:// localhost /更改为http://127.0.0.1:8080/
Pydev没有在eclipse中集成Django?
Django和Linux Mint上的Pgsql连接问题
你的模块是指向你的项目,不应该指向你的项目主要的应用程序,它可以找到wsgi文件?
所以我的INI文件看起来像这样。
在我个人的情况下,我使用的是虚拟环境,django 1.7和uwsgi。
vhost = true plugins = python socket = /tmp/noobmusic.sock master = true enable-threads = true processes = 2 wsgi-file = /home/myname/webapps/music/music/music/wsgi.py virtualenv = /home/myname/webapps/music/musicenv/ chdir = /home/myname/webapps/music/music/
这是我曾经设置uwsgi的唯一网站,因为我通常使用mod-wsgi,不幸的是不记得所有的步骤。
我在配置中看不到任何问题(尽管我不擅长这些话题)。 我可以尝试建议一些步骤来本地化问题。
不使用virtualenv 测试uwsgi 。 请注意,虚拟目录只是一个目录,因此将其添加到您的PYTHONPATH并运行uwsgi 。
在此之前,你可以尝试
python -c 'import django.core.wsgi'
如果有效,那么问题是在uwsgi virtualenv配置。
测试virtualenv 。 运行它并检查模块是否可以导入。
我有类似的问题。 通过确保uwsgi安装使用与您的virtualenv的python版本相同的Python版本(2/3)来解决这个问题。 否则,它不会使用你的virtualenv,从而开始抛出“无法找到模块xyz”类错误。 要在python3下安装uwsgi,你必须使用pip3(反过来也许需要安装类似'apt-get install python-pip3'的东西)。 当在cli上或通过.ini文件调用uwsgi时,你需要引用你的virtualenv提到的完整路径(在/ bin /所在的文件夹之上结束一个文件夹级别;所以/ example / myvenv / bin / activate表示完整路径/例如/ myvenv。
我在我的virtualenv之外完成了uwsgi安装。 我想上面应用/将工作以及在virtualenv内安装uwsgi,但尚未尝试(还)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。