2011-11-28 3 views
2

Heroku에서 django 사용자 정의 명령을 사용할 때 문제가 있습니다. 내 로컬 컴퓨터에서 ./manage.py 도움말을 실행하고 ./manage.py deletedphotos를 실행하면 사용자 지정 명령이 도움말에 나타납니다. .py 파일이 모두 있으며 설정이 정확합니다. 즉, 로컬 및 Heroku 인스턴스간에 주요 설정 차이가 없습니다.Django 사용자 정의 명령이 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))) 

나는 등 모든 올바른 파이썬 경로를 확인하려했지만, 100 % 내가 뭔가를 놓친 게 아니에요하지 않을 경우 분명한.

답변

2

실제로 해결책을 찾을 수있었습니다. INSTALLED_APPS에 내 로컬 앱이 참조되어 있지만 어떤 이유로 그것이 의도 한대로 작동하지 않았습니다.

내 앱 :/name/appname /에 있으며 INSTALLED_APPS의 'name.appname'을 (를) 로컬 설치 프로그램에서 올바르게 사용하고있었습니다.

그러나 Heroku에서는 INSTALLED_APPS에서 'appname'에 대한 참조를 변경해야하며 마술처럼 작동하기 시작했습니다.

1

홈 디렉토리가 파이썬 경로에 있어야합니다. 이를 수행하는 빠르고 간결한 방법은 PYTHONPATH 환경 변수 (일반적으로 Heroku 삼나무 스택의 /app)에 추가하는 것입니다.

에게 Heroku의 설정 명령을 통해 추가 : 그것을

$ heroku config:add PYTHONPATH=/app 

해야한다고! 자세한 내용은 : http://tomatohater.com/2012/01/17/custom-django-management-commands-on-heroku/

+0

난 그냥 (또는 다른 명령 마이그레이션 등)'Heroku가 실행 파이썬 manage.py 쉘 '을 입력합니다. 그렇다면이 your_app/manage.py는 무엇입니까? 자습서를 따라도 도움이되지 못했습니다. 'your_app'의 의미는 무엇입니까? – Neara

+0

매우 늦은 답변에 대해 사과드립니다. 그것은 당신의 manage.py의 위치에 달려있다. 하위 디렉토리에없는 경우 your_app 부분은 필요하지 않습니다. – Tomatohater

0

나도이 문제를 가지고 여기에 해답을 발견 : 내 관리 폴더에 __init__.py 파일을 잃어버린 Django Management Command ImportError

. 그것을 추가 한 후에 모두 잘 동작했습니다.

예 : 나는에게 Heroku에 manage.py 명령을 실행해야하는 경우

qsl/ 
    __init__.py 
    models.py 
    management/ 
     __init__.py 
     commands/ 
      __init__.py 
      news.py 
    jobs/ 
     __init__.py 
     news.py 
    tests.py 
    views.py 
관련 문제