Я недавно настроил решение для развертывания моего проекта Django, используя Fabric . Основной рабочий процесс:
- Проверьте последний источник из git на сервере.
- Скопируйте его в каталог Releases и добавьте метку времени к имени каталога.
- Обновите текущую символическую ссылку, чтобы она указала на последнюю сборку.
Это работает просто отлично, единственная проблема в том, что каталог верхнего уровня представляет собой символическую ссылку с именем «current», которая указывает на папку, такую как «project_name_2010_10_04». ВСЕ из следующих операторов импорта завершатся ошибкой:
from project_name.app import models
...
INSTALLED_APPS = (
'project_name.app'
)
...
urlpatterns = patterns('',
(r'^$', 'project_name.app.views.index'),
)
Таким образом, решение, которое я нашел, заключается в удалении КАЖДОЙ единственной ссылки на 'имя_проекта' в моем проекте, и приложение, кажется, разворачивается и работает просто отлично (на данный момент). Но это не похоже на правильный способ решения проблемы ... в основном потому, что во вновь созданном проекте Django все файлы url.py, settings.py по умолчанию ссылаются на имя проекта, а также в различных упоминаниях документации Django. используя название проекта для разных вещей.
Итак, чтобы подвести итог моей проблемы, есть ли способ указать имя пакета, которое отличается от фактического имени каталога?