我使用默认的localhost创建了一个django Web应用程序,但是我尝试在服务器上进行设置,以便我可以配置postgre数据库并继续操作,而不必在以后重做数据库。
我通过数字海洋ubuntu 14 Droplet托管该网站。当我创建了Droplet时,我选择了它已预先配置为django。它使用nginx和gunicorn来托管网站。
当我第一次创建服务器实例时,基本的django应用程序被配置为处理给定的IP。它确实如此。
我尝试将我的项目克隆到与该项目相同的目录中,假设它将存在于python路径('/ home / project')上,并将nginx配置为每个我发现的一些文档提供127.0.0.1:8000 。
我认为问题在于我试图束缚炮弹。这个输入我得到以下错误。
gunicorn -b 127.0.0.1:8000 GenericRestaurantSystem / wsgi.py:application
ImportError: Failed to find application, did you mean 'program/wsgi:application'?
我不是百分百肯定,但似乎枪炮在这一点上没有提供任何东西(或者甚至没有)。
有关成功绑定此应用程序的任何建议吗?
答案 0 :(得分:25)
那不是你用gunicorn引用WSGI文件的方式。见the docs:
模块名称可以是完整的虚线路径。变量名称是指应在指定模块中找到的WSGI可调用项。
因此,如果你的wsgi.py文件在GenericRestaurantSystem / wsgi.py中,那么你的命令应该是
gunicorn -b 127.0.0.1:8000 GenericRestaurantSystem.wsgi:application
答案 1 :(得分:6)
我想它应该是
gunicorn GenericRestaurantSystem.wsgi:application
答案 2 :(得分:1)
对我而言,这项工作就像魅力:)
cd ~/myproject
gunicorn —bind 0.0.0.0:8000 myproject.wsgi:application
答案 3 :(得分:1)
我遇到了同样的问题并且可以使用它:
gunicorn -b 127.0.0.1:8000 wsgi:application
我将wsgi.py
文件放在与manage.py
相同的级别。
答案 4 :(得分:0)
在根you_django_name_project“ main.py”中创建文件:
from you_django_name_project.wsgi import application
app = application
然后运行:
gunicorn -b 127.0.0.1:8000 main:app