Вслед за Домиником и Драстом,
Мы используем дистрибутив исходного кода setuptools (sdist) для упаковки нашего проекта django и приложений для развертывания в различных средах.
Мы обнаружили, что шаблоны и статические файлы должны находиться в каталогах приложений django, чтобы их можно было упаковать в setuptools.
Например, наш шаблон и статические пути выглядят так:
PROJECT/APP/templates/APP/template.html
PROJECT/APP/static/APP/my.js
Чтобы это работало, необходимо изменить файл MANIFEST.in (см. http://docs.python.org/distutils/sourcedist.html#the-manifest-in-template)
Пример MANIFEST.in:
include setup.py
recursive-include PROJECT *.txt *.html *.js
recursive-include PROJECT *.css *.js *.png *.gif *.bmp *.ico *.jpg *.jpeg
Кроме того, вам необходимо подтвердить в файле настроек django, что загрузчик app_directories находится в вашем TEMPLATE_LOADERS. Я думаю, что это по умолчанию в Django 1.4.
Пример загрузчиков шаблонов настроек django:
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
На тот случай, если вам интересно, почему мы используем sdists вместо простого копирования файлов rsync; это часть нашего рабочего процесса управления конфигурацией, где у нас есть один сборочный архив, который развертывается с неизменным PIP в тестовой, приемочной и производственной средах.