我正在新服务器上安装以前建立的网站。我不是原始开发人员。
过去,我曾使用Gunicorn +
nginx来保持该应用程序的生命(基本上遵循本教程),但是在这里遇到了问题。
I source venv/bin/activate
,然后./manage.py runserver 0.0.0.0:8000
运行良好,一切都按预期运行。我将其关闭并运行gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
,得到以下信息:
[2016-09-13 01:11:47 +0000] [15259] [INFO] Starting gunicorn 19.6.0
[2016-09-13 01:11:47 +0000] [15259] [INFO] Listening at: http://0.0.0.0:8000 (15259)
[2016-09-13 01:11:47 +0000] [15259] [INFO] Using worker: sync
[2016-09-13 01:11:47 +0000] [15262] [INFO] Booting worker with pid: 15262
[2016-09-13 01:11:47 +0000] [15262] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/var/www/myproject/venv/lib/python3.5/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker
worker.init_process()
File "/var/www/myproject/venv/lib/python3.5/site-packages/gunicorn/workers/base.py", line 126, in init_process
self.load_wsgi()
File "/var/www/myproject/venv/lib/python3.5/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi
self.wsgi = self.app.wsgi()
File "/var/www/myproject/venv/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/var/www/myproject/venv/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
return self.load_wsgiapp()
File "/var/www/myproject/venv/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
return util.import_app(self.app_uri)
File "/var/www/myproject/venv/lib/python3.5/site-packages/gunicorn/util.py", line 357, in import_app
__import__(module)
ImportError: No module named 'myproject.wsgi'
[2016-09-13 01:11:47 +0000] [15262] [INFO] Worker exiting (pid: 15262)
[2016-09-13 01:11:47 +0000] [15259] [INFO] Shutting down: Master
[2016-09-13 01:11:47 +0000] [15259] [INFO] Reason: Worker failed to boot.
我相信这与整个应用程序的结构有关。之前,我构建的应用程序具有以下基本结构:
myproject
├── manage.py
├── myproject
│ ├── urls.py
│ ├── views.py
│ ├── component1
│ │ ├── urls.py
│ │ └── views.py
│ ├── component2
│ │ ├── urls.py
│ │ └── views.py
├── venv
│ ├── bin
│ └── ...
相反,此结构的结构如下:
myproject
├── apps
│ ├── blog
│ │ ├── urls.py
│ │ ├── views.py
│ │ └── ...
│ ├── catalogue
│ │ ├── urls.py
│ │ ├── views.py
│ │ └── ...
│ ├── checkout
│ │ ├── urls.py
│ │ ├── views.py
│ │ └── ...
│ ├── core
│ │ ├── urls.py
│ │ ├── views.py
│ │ └── ...
│ ├── customer
│ ├── dashboard
│ └── __init__.py
├── __init__.py
├── manage.py
├── project_static
│ ├── assets
│ ├── bower_components
│ └── js
├── public
│ ├── emails
│ ├── media
│ └── static
├── settings
│ ├── base.py
│ ├── dev.py
│ ├── __init__.py
│ ├── local.py
│ └── production.py
├── templates
│ ├── base.html
│ ├── basket
│ ├── blog
│ └── ....
├── urls.py
├── venv
│ ├── bin
│ ├── include
│ ├── lib
│ ├── pip-selfcheck.json
│ └── share
└── wsgi.py
因此,没有运行节目的“主要”模块,这正是我期望gunicorn所寻找的。
有什么想法吗?
wsgi.py :
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
application = get_wsgi_application()
您的错误消息是
ImportError: No module named 'myproject.wsgi'
您与运行应用程序
gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
和wsgi.py有线
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
这是断开连接。为了认识该项目作为myproject.wsgi
的 父 目录必须是python的路径上运行…
cd .. && gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
将消除该错误。但是,您将得到另一个错误,因为wsgi.py文件引用了settings
而不是myproject.settings
。这意味着该应用程序应从根目录而不是一个目录中运行。您可以通过查看代码确定这一点-
如果代码使用绝对导入,它们通常会说from myproject.app import ...
还是from app import ...
。如果该猜测正确,则您的正确命令是
gunicorn --bind 0.0.0.0:8000 wsgi:application
如果该应用确实myproject
在所有路径中都使用过,则必须修改您的PYTHONPATH才能正常运行…
PYTHONPATH=`pwd`/.. gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
嗨,我正在学习线性代数与python的Edx课程。(http://nbviewer.ipython.org/github/ULAFF/notebooks/tree/may-14-2014/). 在第一个框中的“02.4.2.10矩阵向量乘法练习”中,代码为: 生成问题是Edx教授创建的一个模块。但是,我在导入Symphy时出错。 我得到的错误如下: 我下载并安装了症状,如果我导入,它可以在终端(苹
问题内容: 我正在将Django应用程序部署到开发服务器,并且在运行时遇到此错误: 似乎与一起分发。最初,我认为这可能不会安装到virtualenv中的Python,所以我使用以下命令将了(与Python相同的版本)安装到virtualenv 中的Python站点软件包: 编辑:这只发生在virtualenv内部。如果我在virtualenv外部打开控制台,则该控制台存在,但仍然出现相同的错误。
问题内容: 我有这个问题: 我已经安装了PIL,但仍然无法正常工作。我使用OSX。 我正在尝试为Django Simple Captcha安装此模块。 问题答案: 克里斯托弗的建议对我来说非常有效。 详细信息如下:1.卸载现有的Python Imaging Library 下载并解压缩源版本(从此处 http://effbot.org/downloads/Imaging-1.1.6.tar.gz)
问题内容: 卸载旧的Django版本后,我已经更新到最新的Django版本1.0.2。但是现在当我运行django-admin.py时,出现以下错误。我该如何解决? 问题答案: 你必须确保django在你的PYTHONPATH中。 要进行测试,只需在python shell中执行即可。应该没有输出: 如果你安装的Django通过(或与附带的),然后在你检查site-packages,如果文件(.)
问题内容: 我正在使用Python 2.5.4版并安装MySQL 5.0版和Django。Django在Python上运行良好,但在MySQL上运行良好。我在Windows Vista中使用它。 问题答案: 你需要使用以下命令之一。哪一个取决于你拥有和使用的操作系统和软件。 easy_install mysql-python(混合OS) pip安装mysql-python(mix os / pyt
问题内容: 在尝试验证tensorflow-gpu的安装时,尝试执行“将tensorflow作为tf导入”时出现了ImportError。我在Windows 7上使用Quadro K620。Tensorflow使用pip安装。 以下是堆栈跟踪: 我看过其他多个堆栈溢出帖子,例如纠正路径之类的内容,但我无法解决此问题。 问题答案: 我今天遇到了同一问题,请改用Windows的cuDNN v5.1库,