2013-07-07 4 views
0

Я пробовал несколько вещей, чтобы заставить мое приложение работать над героку, но теперь у меня нет идей. Я могу установить свой проект на репутацию герою, но я получаю код ошибки 500. Мое приложение работает очень хорошо, используя virtualenv на моей машине после того, как я выполнил шаги, описанные в документации heroku для django.Django ImportError on Heroku

Когда я делаю «мерзавец нажимного мастер Heroku» и попробуйте в браузере, я получаю следующее сообщение об ошибке:

2013-07-07T15:39:11.170514+00:00 app[web.1]: ImportError: No module named apps.base 
2013-07-07T15:39:11.170059+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/dateformat.py", line 35, in format 
2013-07-07T15:39:11.170202+00:00 app[web.1]:  app = import_module(appname) 
2013-07-07T15:39:11.170202+00:00 app[web.1]:  default_translation = _fetch(settings.LANGUAGE_CODE) 
2013-07-07T15:39:11.170202+00:00 app[web.1]:  _default = translation(settings.LANGUAGE_CODE) 

я учил это было вызвано структурой каталогов, которая не была поддержана на Heroku, так Я скорректировал его по умолчанию, созданному с помощью команды django startproject.

Вот моя новая файловая структура. Я поправил ссылку на импорт везде и, как я уже сказал, я работает pefctly в местные:

manage.py 
Procfile 
requirements.txt 
vielfaltig 
|____apps 
| |____base 
| | |____models.py 
| | |____templates 
| | |____tests.py 
| | |____urls.py 
| | |____views.py 
| |____projects 
| | |____admin.py 
| | |____models.py 
| | |____templates 
| | |____templatetags 
| | |____tests.py 
| | |____translation.py 
| | |____urls.py 
| | |____views.py 
|____locale 
|____media 
|____settings.py 
|____static 
|____urls.py 
|____vielfaltig.db 
|____wsgi.py 

Как вы заметили, у меня есть 2 приложения (базовые и проекты). В коде я импортирую их, например, с помощью «vielfaltig.apps.base». Я изменил это повсюду. У меня была эта ошибка раньше, и я изменил структуру каталогов в соответствии с тем, что я прочитал, когда искал ошибку. Я также попытался поместить все в корневой каталог (вместе с требованиями .txt и procfile). Я не знаю, почему он продолжает говорить мне ImportError для «apps.base», в то время как я ссылаюсь на приложение, используя «vielfaltif.apps.base» всюду ...?

У кого-нибудь есть идеи? При необходимости я вставлю свои settings.py. Пока я думаю, что это займет много места.

Благодарим за помощь!

ответ

0

Я думаю, он будет работать с import vielfaltig.apps.base вместо apps.base. Это может быть исправлено, если вставить путь vielfaltig к системному пути питона в вашем settings.py

import sys 

sys.path.append('vielfaltig') 
+1

Это может быть сделано, как: 'импорт SYS; sys.path.insert (0, 'vielfaltig') 'в параметре' settings.py'. – spinus

+0

Спасибо, я не думаю, что мне нужно это сделать, потому что я уже изменил весь свой импорт на «import vielfaltig.apps.base» во всех моих файлах, где он был применен. Кроме того, он хорошо работает в локали. Тем не менее я пробовал ваше предложение, и я не работаю ... сервер даже не начинает с этого изменения. Я думаю, проблема в другом месте, может быть, в переводах? Но я проверил свои файлы переводов, и пути вроде бы ... – user2344489

+0

Попробуйте 'python manage.py' без каких-либо флагов, и я думаю, что это сделает вам исключение. Если это так, напишите его в своем вопросе. – shalakhin