Python 继续获取模块NotFoundError:没有名为';mainsite.settings';将计划程序推送到heroku时
我正在尝试在heroku上设置一个调度程序-我在django文档上读到,我需要将django视为一个独立的应用程序 MyPython 继续获取模块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
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
和Herokumainsite.SETTINGS.prod