Как перенести проект 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 в документации.