Django-工头找不到已安装的模型

多纳托·佩尔孔蒂(Donato Perconti)

我试图用工头/本町来管理我基于Procfile-Django应用程序。当我启动应用程序查看正常时python manage.py runserver,一切正常。但是,当我通过honcho start启动应用程序foreman start web时,出现此错误:

11:59:31 system | web.1 started (pid=27959)
11:59:31 web.1  | [2016-04-26 11:59:31 -0700] [27959] [INFO] Starting gunicorn 19.4.5
11:59:31 web.1  | [2016-04-26 11:59:31 -0700] [27959] [INFO] Listening at: http://0.0.0.0:5000 (27959)
11:59:31 web.1  | [2016-04-26 11:59:31 -0700] [27959] [INFO] Using worker: sync
11:59:31 web.1  | [2016-04-26 11:59:31 -0700] [27962] [INFO] Booting worker with pid: 27962
11:59:31 web.1  | [2016-04-26 18:59:31 +0000] [27962] [ERROR] Exception in worker process:
11:59:31 web.1  | Traceback (most recent call last):
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/gunicorn/arbiter.py", line 515, in spawn_worker
11:59:31 web.1  |     worker.init_process()
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/gunicorn/workers/base.py", line 122, in init_process
11:59:31 web.1  |     self.load_wsgi()
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/gunicorn/workers/base.py", line 130, in load_wsgi
11:59:31 web.1  |     self.wsgi = self.app.wsgi()
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
11:59:31 web.1  |     self.callable = self.load()
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
11:59:31 web.1  |     return self.load_wsgiapp()
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
11:59:31 web.1  |     return util.import_app(self.app_uri)
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/gunicorn/util.py", line 357, in import_app
11:59:31 web.1  |     __import__(module)
11:59:31 web.1  |   File "../wsgi.py", line 17, in <module>
11:59:31 web.1  |     application = get_wsgi_application()
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
11:59:31 web.1  |     django.setup()
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/django/__init__.py", line 18, in setup
11:59:31 web.1  |     apps.populate(settings.INSTALLED_APPS)
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/django/apps/registry.py", line 85, in populate
11:59:31 web.1  |     app_config = AppConfig.create(entry)
11:59:31 web.1  |   File "/Library/Python/2.7/site-packages/django/apps/config.py", line 90, in create
11:59:31 web.1  |     module = import_module(entry)
11:59:31 web.1  |   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
11:59:31 web.1  |     __import__(name)
11:59:31 web.1  | ImportError: No module named django_messages
11:59:31 web.1  | [2016-04-26 18:59:31 +0000] [27962] [INFO] Worker exiting (pid: 27962)
11:59:31 web.1  | [2016-04-26 11:59:31 -0700] [27959] [INFO] Shutting down: Master
11:59:31 web.1  | [2016-04-26 11:59:31 -0700] [27959] [INFO] Reason: Worker failed to boot.
11:59:31 system | web.1 stopped (rc=3)

这与尝试安装django-message模块有关。其他模块也有相同的问题。我也遇到了django-webpack-loader这个问题我还应该提到,我在virtualenv内以及将其停用时都收到错误。

这是安装django-messages的命令:

$> pip install django-messages
Requirement already satisfied (use --upgrade to upgrade): django-messages in ./lib/python2.7/site-packages

已安装的应用程序;

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'my_app',
    'django_messages',
)

我不确定我还可以提供什么其他信息来帮助进行故障排除,但是基本问题是如何使已安装的应用程序与领班/ honcho一起使用?

亚伦·D

Honcho和Foreman不在您的virtualenv中使用Python可执行文件和库,并且当您不包括Honcho Procfile时,仅调用python将使用系统范围的可执行文件和库。

不幸的是,您不能仅/path/to/virtualenv/bin/activate作为Procfile的一部分进行调用,因为Honcho会在子进程之一退出时退出,如本Github问题线程中所述但是,您可以使用&&运算符将它们和python脚本链接到一个子外壳中,以将它们链接在一起:

web: source venv/bin/activate && python manage.py 

另外,wsgi.py在导入Django应用程序之前,可以更好地修改包装器以显式引入virtualenv的库:

# Activate your virtual env
activate_env=os.path.expanduser("/path/to/virtualenv/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))

这些操作应在导入任何模块(除外os之前执行,以确保您的应用程序读取正确的站点库。

最后,Honcho本身支持.env与Procfile一起使用文件,这些文件可设置运行进程的环境。此文件的格式与任何bash脚本相同。您可以使用.env文件设置PYTHONPATHPYTHONHOME指向Virtualenv中的库,然后从Procfile中在Virtualenv中指定显式的Python解释器。

.env文件

PYTHONHOME=/path/to/virtualenv/lib/python2.7
PYTHONHOME=

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django 找不到模型属性

来自分类Dev

Django模型找不到静态文件

来自分类Dev

Django找不到本地安装的Python模块

来自分类Dev

找不到msguniq。确保已安装0.15或更高版本的GNU gettext工具。(Django 1.8和OSX ElCapitan)

来自分类Dev

工头:找不到命令

来自分类Dev

工头:找不到命令

来自分类Dev

找不到Heroku Toolbelt在Windows上安装的工头

来自分类Dev

Django 1.9 / Haystack 2.4.1“找不到SearchResult模型”

来自分类Dev

Django 1.7找不到带有makemigrations的新模型

来自分类Dev

django runserver找不到django

来自分类Dev

django扩展已安装的应用程序模型保存方法

来自分类Dev

django扩展已安装的应用程序模型保存方法

来自分类Dev

在运行测试时找不到在Django中安装的应用

来自分类Dev

django-cms安装错误“ .pyc找不到”

来自分类Dev

django找不到图片

来自分类Dev

找不到网址Django

来自分类Dev

找不到Django Page

来自分类Dev

找不到Django URL

来自分类Dev

找不到Django范本

来自分类Dev

Django,找不到范本

来自分类Dev

找不到网址Django

来自分类Dev

Django:找不到页面

来自分类Dev

找不到Django的页面

来自分类Dev

Django找不到视图

来自分类Dev

找不到sed,但已安装

来自分类Dev

找不到sed,但已安装

来自分类Dev

找不到CMake,但已安装

来自分类Dev

消息-找不到python-django或python3-django的安装版本

来自分类Dev

消息-找不到python-django或python3-django的安装版本