Tôi đang cố gắng chạy lệnh django tùy chỉnh làm tác vụ theo lịch trên Heroku. Tôi có thể thực hiện lệnh tùy chỉnh cục bộ qua: python manage.py send_daily_email
. (Lưu ý: Tôi không có bất kỳ vấn đề với lệnh quản lý tùy chỉnh riêng của mình)Chạy lệnh Django custom manage.py trên Heroku - Nhập vấn đề
Tuy nhiên, Heroku là đem lại cho tôi những ngoại lệ sau khi cố gắng "Run" nhiệm vụ thông qua Heroku Scheduler addon:
Traceback (most recent call last):
File "bin/send_daily_visit_email.py", line 2, in <module>
from django.conf import settings
ImportError: No module named django.conf
tôi đặt một kịch bản python trong /bin/send_daily_email.py, và nó là như sau:
#! /usr/bin/python
from django.conf import settings
settings.configure()
from django.core import management
management.call_command('send_daily_email') #delegates off to custom command
trong Heroku, tuy nhiên, tôi có thể chạy heroku run bin/python
- khởi động vỏ python - và thành công hoàn toàn nhập khẩu từ settings
django.conf
Tôi khá chắc chắn nó có cái gì để làm với PYTHON_PATH
hoặc tầm nhìn của tôi để Django SETTINGS_MODULE
, nhưng tôi không chắc chắn làm thế nào để giải quyết vấn đề. ai đó có thể chỉ cho tôi đi đúng hướng? Có cách nào dễ dàng hơn để hoàn thành những gì tôi đang cố gắng làm ở đây không?
Cảm ơn bạn rất nhiều vì lời khuyên và lời khuyên của bạn trước! Mới với Heroku! :)
EDIT:
bình mỗi Nix, tôi thực hiện một số điều chỉnh, và đã khám phá ra rằng việc xác định con đường python chính xác của tôi, tôi đã vượt qua việc cài đặt Django.
bây giờ tôi nhận được:
File "/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 155, in call_command
raise CommandError("Unknown command: %r" % name)
django.core.management.base.CommandError: Unknown command: 'send_daily_email'
Mặc dù, tôi có thể thấy 'send_daily_email' khi tôi chạy '' Heroku chạy bin/app python/manage.py```.
Tôi sẽ cập nhật nếu tôi gặp câu trả lời.
Wow. Bạn đúng. Khi tôi gọi '' 'heroku chạy bin/python bin/send_daily_email.py''' (so với' '' heroku chạy bin/send_daily_email.py).Tôi sẽ sửa lại câu trả lời của mình và đưa ra phản hồi hiện tại của tôi để xem bạn có thể giúp được không :) Nhưng tôi sẽ nói với SO bạn đã trả lời câu hỏi. – kturner