Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 芹菜3工人和Django Herokuapp_Python_Django_Heroku_Celery - Fatal编程技术网

Python 芹菜3工人和Django Herokuapp

Python 芹菜3工人和Django Herokuapp,python,django,heroku,celery,Python,Django,Heroku,Celery,我有一个Django应用程序,它有一个项目布局,如Django书的两个勺子中所述 ├── CONTRIBUTORS.txt ├── LICENSE.txt ├── Procfile ├── README.rst ├── docs ├── requirements │ ├── base.txt │ ├── local.txt │ ├── production.txt │ └── test.txt ├── requirements.txt └── PROJECT_NAME ├

我有一个
Django
应用程序,它有一个项目布局,如Django书的两个勺子中所述

├── CONTRIBUTORS.txt
├── LICENSE.txt
├── Procfile
├── README.rst
├── docs
├── requirements
│   ├── base.txt
│   ├── local.txt
│   ├── production.txt
│   └── test.txt
├── requirements.txt
└── PROJECT_NAME
    ├── __init__.py
    ├── app_name
    │   ├── __init__.py
    │   ├── models.py
    │   ├── views.py
    ├── manage.py
    ├── PROJECT_NAME_APP
    │   ├── __init__.py
    │   ├── celery.py
    │   ├── settings
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── local.py
    │   │   ├── production.py
    │   │   ├── test.py
    │   ├── urls.py
    │   ├── wsgi.py
    ├── static
    │   ├── css
    │   ├── fonts
    │   └── js
    └── templates
将其部署到
Heroku
Heroku
文档略有不同,因为应用程序的文件路径略有不同。然而,我把它们修改成了合适的路径,一切都很顺利。注意,我的项目名称\u应用文件夹实际上与我的顶级项目文件夹的名称不同,这是我为使应用程序在
Heroku上运行而做的更改

我现在正试图添加一个
芹菜
工作者。我使用的是一个版本的
芹菜
,它不需要
django芹菜
软件包。在我的Procfile中,我有这一行来定义worker:

工人:芹菜工人--app=project\u name.project\u name\u app.芹菜

我创建的芹菜文件遵循,位于PROJECT_NAME_应用程序中

import os

from __future__ import absolute_import
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name_app.settings.local')
app = Celery('project_name_app')
app.config_from_object('django.conf:settings')

@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))
我在
Heroku
中遇到了一些关于设置
DJANGO\u SETTINGS\u模块的建议,我确实这么做了,但这似乎破坏了其他东西,所以我取消了设置

我现在遇到的错误是:

ImportError: Could not import settings 'project_name_app.settings.local' (Is it on sys.path?): No module named project_name_app.settings.local
我理解错误的意思,但我发现在Heroku上调试很困难。我曾尝试在本地使用
foreman start
调试我的
Procfile
,但由于本地与生产设置的关系,它再次抛出了与我的
密钥有关的错误


有人知道为什么我的设置在生产环境中运行时会出现错误吗?

因此,我在
wsgi.py
文件中注意到,已经使用了数小时的设置

import os
from os.path import abspath, dirname
from sys import path

SITE_ROOT = dirname(dirname(abspath(__file__)))
path.append(SITE_ROOT)

# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
# if running multiple sites in the same mod_wsgi process. To fix this, use
# mod_wsgi daemon mode with each site in its own daemon process, or use
# os.environ["DJANGO_SETTINGS_MODULE"] = "jajaja.settings"

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "restaurants_app.settings.production")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
application = Cling(get_wsgi_application())
它创建一个
SITE\u ROOT
var,然后将其添加到路径中。我在我的
芹菜.py
文件中也做了同样的事情,而且效果很好