Как перенести проект Django в Pythonanywhere
Я пытаюсь настроить приложение Django на Pythonanywhere - мне удалось выяснить Bitbucket и клонировать код - я удалил файлы в каталоге, который был предоставлен для меня - но не могу заставить его работать.
Я сделал "syncdb", затем, когда я иду к тому, что я думаю, является правильным URL - адресом для приложения, я продолжаю получать" необработанное исключение "- ошибка в том, что он не может найти " портфолио.настройки " в импорте (портфолио-это название приложения)
Я также понятия не имею что ставить для MEDIA_ROOT и STATIC_DIRS - они должны быть, насколько я знаю, полными путями, а не относительными.
Я новичок Django, и это оказывается довольно подавляющим, чтобы получить приложение, которое отлично работает локально, развернуто. Любая помощь много предоставляется (я не нашел форумы Pythonanywhere - которые не кажутся индексированными - или помогают всем, что полезно, я боюсь)
Я также подумал: почему бы мне не позволить Pythonanywhere настроить пустой проект для меня, но опять же, я не знаю как обрабатывать STATIC_DIRS и MEDIA_ROOT, и я действительно не знаю, как сделать мой проект подходящим для их настройки.
Спасибо за любую помощь.
1 ответов
для всех, кто сталкивается с аналогичными проблемами: ошибки импорта в веб-приложениях обычно связаны с вашим sys.path
неправильно настроен. Проверьте свой файл WSGI (на PythonAnywhere вы можете найти его на своей веб-вкладке. Другие хосты могут делать вещи по-другому).
пример:
-
/home/myusername/myproject/
- Это папка проекта -
/home/myusername/myproject/my_cool_app/
один из Приложение папки -
/home/myusername/myproject/myproject/settings.py
файл настройки местоположение
ваш файл WSGI должен иметь:
sys.path.append('/home/myusername/myproject')
# ...
DJANGO_SETTINGS_MODULE = 'myproject.settings'
и ваш settings.py надо было
INSTALLED_APPS = (
#...
'my_cool_app'
все должно выстроиться так, чтобы имена точечных обозначений вашего приложения в INSTALLED_APPS
и свой DJANGO_SETTINGS_MODULE
переменная среды будет правильно импортироваться относительно папки, которую вы добавляете в sys.путь.
так, в приведенном выше примере вы могли бы сделать:
# wsgi file
sys.path.append('/home/myusername')
DJANGO_SETTINGS_MODULE = 'myproject.myproject.settings'
# settings.py
INSTALLED_APPS = 'myproject.my_cool_app'
но не делайте этого, это сверхсложным.
PS есть подробное руководство по sys.пути и проблемы импорта для pythonanywhere в документации.