Многократное приложение docs (https://docs.djangoproject.com/en/1.9/intro/reusable-apps/) сообщает вам список шаблонов и статических файлов в MANIFEST.in
, но он не выглядит например, python setup.py bdist_wheel
вообще смотрит этот файл.
Я видел ссылки на data_files
, но эти файлы находятся в каталогах относительно установки python (sys.prefix
), а не в установке пакета (и sys.prefix
не равномерно связан с site-packages
в разных системах).
Правильно ли я полагаю, что myapp/templates/myapp/foo.html
должен закончиться в .../site-packages/myapp/templates/myapp/foo.html
и аналогичным образом для статических файлов и что пользователю нужно запустить manage.py collectstatic
после pip install myapp
?
Обновление (пример):
Следующая структура:
(build2) go|c:\srv\tmp\myapp> tree
.
|-- MANIFEST.in
|-- myapp
| |-- static
| | `-- myapp
| | `-- foo.css
| |-- templates
| | `-- myapp
| | `-- foo.html
| |-- urls.py
| `-- views.py
`-- setup.py
5 directories, 6 files
setup.py
import setuptools
from distutils.core import setup
setup(
name='myapp',
version='0.1.0',
packages=['myapp']
)
MANIFEST.in
recursive-include myapp/templates *
recursive-include myapp/static *
работает python setup.py sdist
и python setup.py bdist_wheel
создает следующие файлы bin myapp/dist:
2016-06-18 13:47 2,073 myapp-0.1.0-py2-none-any.whl
2016-06-18 13:46 2,493 myapp-0.1.0.zip
если вы заглянете внутрь .zip файла, вы найдете шаблоны и статические папки, если вы переименуете файл .whl.zip и заглянете внутрь, каталоги не включены.
Обновление 2 (решение):
Изменение файла MANIFEST.in на
recursive-include myapp *
и setup.py в
from setuptools import find_packages, setup
setup(
name='myapp',
version='0.1.0',
include_package_data=True,
packages=['myapp'],
zip_safe=False,
)
тогда запуск python setup.py bdist_wheel
создаст файл .whl
, который устанавливает myapp/templates
и myapp/static
в ожидаемых местах.