Django自定义命令未显示在Heroku上

Django自定义命令未显示在Heroku上,django,heroku,Django,Heroku,我在Heroku上使用django自定义命令时遇到问题。 在本地计算机上,如果我运行./manage.py help并运行./manage.py deletedphotos,则自定义命令将显示在帮助中。 所有init.py文件都在那里,并且设置也正确,即我的本地实例和Heroku实例之间没有重大的配置差异 现在,当我把它放在Heroku上时,它没有出现。我的所有其他非默认命令都在那里:ping_google,它来自于安装sitemap.xml支持和用于南方迁移的命令。但由于某些原因,我自己编写的

我在Heroku上使用django自定义命令时遇到问题。 在本地计算机上,如果我运行./manage.py help并运行./manage.py deletedphotos,则自定义命令将显示在帮助中。 所有init.py文件都在那里,并且设置也正确,即我的本地实例和Heroku实例之间没有重大的配置差异

现在,当我把它放在Heroku上时,它没有出现。我的所有其他非默认命令都在那里:ping_google,它来自于安装sitemap.xml支持和用于南方迁移的命令。但由于某些原因,我自己编写的命令没有显示出来

我还向Heroku发送了一个支持请求,但几天内没有收到他们的回复,所以我想我也应该在这里发布,也许有人遇到过类似的问题

deletedphotos.py文件内容与以下内容非常相似:

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_应用程序部分。