Django自定义命令未显示在Heroku上
我在Heroku上使用django自定义命令时遇到问题。 在本地计算机上,如果我运行./manage.py help并运行./manage.py deletedphotos,则自定义命令将显示在帮助中。 所有init.py文件都在那里,并且设置也正确,即我的本地实例和Heroku实例之间没有重大的配置差异 现在,当我把它放在Heroku上时,它没有出现。我的所有其他非默认命令都在那里:ping_google,它来自于安装sitemap.xml支持和用于南方迁移的命令。但由于某些原因,我自己编写的命令没有显示出来 我还向Heroku发送了一个支持请求,但几天内没有收到他们的回复,所以我想我也应该在这里发布,也许有人遇到过类似的问题 deletedphotos.py文件内容与以下内容非常相似:Django自定义命令未显示在Heroku上,django,heroku,Django,Heroku,我在Heroku上使用django自定义命令时遇到问题。 在本地计算机上,如果我运行./manage.py help并运行./manage.py deletedphotos,则自定义命令将显示在帮助中。 所有init.py文件都在那里,并且设置也正确,即我的本地实例和Heroku实例之间没有重大的配置差异 现在,当我把它放在Heroku上时,它没有出现。我的所有其他非默认命令都在那里:ping_google,它来自于安装sitemap.xml支持和用于南方迁移的命令。但由于某些原因,我自己编写的
from django.core.management.base import BaseCommand, CommandError
from foo.app.models import *
class Command(BaseCommand):
help = 'Delete photos from S3'
def handle(self, *args, **options):
deleted_photos = Photo.objects.filter(deleted=True).exclude(large='', small='', thumb='')
self.stdout.write('Found %s photos\n' % str(len(deleted_photos)))
我已经试着检查所有正确的python路径等,但如果我没有遗漏一些明显的东西,那就不是100%。我实际上找到了一个解决方案。已安装的应用程序引用了我的本地应用程序,但由于某些原因,它无法正常工作 我的应用程序位于:/name/appname/中,并且在已安装的应用程序中具有“name.appname”\u在本地安装程序中运行正常
然而,在Heroku上,我不得不在已安装的应用程序中更改对“appname”的引用,所有这些应用程序都开始神奇地工作。您的主目录必须位于Python路径上。一种快速而不引人注目的方法是将其添加到PYTHONPATH环境变量中(通常是Heroku Cedar堆栈上的/app) 通过heroku config命令添加:
$ heroku config:add PYTHONPATH=/app
那就够了!有关详细信息:
我也有这个问题,在这里找到了答案: 我的管理文件夹中缺少一个
\uuuu init\uuuuu.py
文件。添加后,一切都很好
例如:
qsl/
__init__.py
models.py
management/
__init__.py
commands/
__init__.py
news.py
jobs/
__init__.py
news.py
tests.py
views.py
当我需要在Heroku上运行manage.py命令时,我只需键入'Heroku run python manage.py shell'(或任何其他命令,如migrate等)。那么这是什么你的应用程序/manage.py?跟随你的教程对我没有帮助。你所说的“你的应用程序”是什么意思?很抱歉这么晚才回复。这取决于manage.py的位置。如果您的应用程序不在子目录中,那么您不需要your_应用程序部分。