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
Python 继续获取模块NotFoundError:没有名为';mainsite.settings';将计划程序推送到heroku时_Python_Django_Heroku - Fatal编程技术网

Python 继续获取模块NotFoundError:没有名为';mainsite.settings';将计划程序推送到heroku时

Python 继续获取模块NotFoundError:没有名为';mainsite.settings';将计划程序推送到heroku时,python,django,heroku,Python,Django,Heroku,我正在尝试在heroku上设置一个调度程序-我在django文档上读到,我需要将django视为一个独立的应用程序 Myclock.py,它触发后台作业,如下所示: import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mainsite.settings.dev') django.setup() from django.conf import settings from apscheduler.sche

我正在尝试在heroku上设置一个调度程序-我在django文档上读到,我需要将django视为一个独立的应用程序

My
clock.py
,它触发后台作业,如下所示:

import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mainsite.settings.dev')

django.setup()
from django.conf import settings
from apscheduler.schedulers.blocking import BlockingScheduler
from rq import Queue
from worker import conn
from accounts.tasks import print_message

q = Queue(connection=conn)

sched = BlockingScheduler()

@sched.scheduled_job('interval', minutes=3)
def timed_job():
    print('This job is run every three minutes.')
    q.enqueue(print_message, 'http://heroku.com') 


sched.start()
import os

import redis
from rq import Worker, Queue, Connection

listen = ['high', 'default', 'low']

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')

conn = redis.from_url(redis_url)

if __name__ == '__main__':
    with Connection(conn):
        worker = Worker(map(Queue, listen))
        worker.work()
我一直在说一个错误
ModuleNotFoundError:没有名为“mainsite.settings”的模块
即使我的文件夹结构甚至没有
mainsite.settings
。它存储在heroku服务器的
mainsite.settings.prod
和本地计算机上的
mainsite.settings.dev
中,如下所示:

我的
wsgi.py
如下所示:

import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mainsite.settings.dev')

django.setup()
from django.conf import settings
from apscheduler.schedulers.blocking import BlockingScheduler
from rq import Queue
from worker import conn
from accounts.tasks import print_message

q = Queue(connection=conn)

sched = BlockingScheduler()

@sched.scheduled_job('interval', minutes=3)
def timed_job():
    print('This job is run every three minutes.')
    q.enqueue(print_message, 'http://heroku.com') 


sched.start()
import os

import redis
from rq import Worker, Queue, Connection

listen = ['high', 'default', 'low']

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')

conn = redis.from_url(redis_url)

if __name__ == '__main__':
    with Connection(conn):
        worker = Worker(map(Queue, listen))
        worker.work()
os.environ.setdefault('DJANGO\u SETTINGS\u MODULE',os.getenv('DJANGO\u SETTINGS\u MODULE'))

如果有人想知道的话,
worker.py
文件如下所示:

import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mainsite.settings.dev')

django.setup()
from django.conf import settings
from apscheduler.schedulers.blocking import BlockingScheduler
from rq import Queue
from worker import conn
from accounts.tasks import print_message

q = Queue(connection=conn)

sched = BlockingScheduler()

@sched.scheduled_job('interval', minutes=3)
def timed_job():
    print('This job is run every three minutes.')
    q.enqueue(print_message, 'http://heroku.com') 


sched.start()
import os

import redis
from rq import Worker, Queue, Connection

listen = ['high', 'default', 'low']

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')

conn = redis.from_url(redis_url)

if __name__ == '__main__':
    with Connection(conn):
        worker = Worker(map(Queue, listen))
        worker.work()
我做错了什么

我尝试了
echo$DJANGO\u设置\u模块
,它正确地显示了
mainsite.SETTINGS.dev
和Heroku
mainsite.SETTINGS.prod