Python django webapp packaging sdist

Когда я запускаю python setup.py sdist в каталоге моего проекта и проверяю содержимое с помощью tar --list -f .\dist\my_project_name-1.0.tar.gz я вижу, что один важный файл python (manage.py) и пара каталогов templates, который содержит .html файлы, и static, содержащий .css файлы, отсутствуют.

Я рассмотрел много вопросов: Q1 Q2 Q3 Q4

но добавление MANIFEST.in или добавление следующих строк к моему setup.py ничего не изменило. А что насчет моего manage.py? Разве файлы python не должны быть включены по умолчанию в sdist?

include_package_data=True,
data_files=[('templates','my_app/templates/my_app/*.html']),
            ('static', ['my_app/static/my_app/static/css/*.css'])]

Кроме того, я получаю такой же точный результат с помощью python setup.py sdist bdist_wheel (хотя я не уверен, в чем разница между этими двумя командами).

А как насчет моего manage.py? Разве файлы python не должны быть включены по умолчанию в sdist?

Нет, все файлы python не будут включены по умолчанию. Другой важной частью вашего setup.py являются ключевые слова packages и py_modules. Вы должны указать все пакеты и подпакеты и модули, которые вы хотите включить.

Обычно приложения Django не распространяются с файлом manage.py, но если вы хотите включить его, вы можете добавить py_modules=['manage'] к ключевым словам setup (предполагается, что manage.py находится рядом с setup.py).

Чтобы ваши собранные дистрибутивы содержали файлы данных, такие как ваши шаблоны и статические файлы, ваш MANIFEST.in должен включить их. Вы должны добавить записи, подобные этим:

recursive-include my_app/templates *
recursive-include my_app/static *

Ключевое слово data_files не нужно. Просто используйте include_package_data=True, и он будет уважать ваше MANIFEST.in.

Кроме того, я получаю такой же точный результат с помощью python setup.py sdist bdist_wheel

.

sdist (исходный дистрибутив) и bdist_wheel (бинарный дистрибутив колеса) - это просто отдельные форматы дистрибутивов.

По сравнению с первой командой, вы просто говорите ей собрать исходный дистрибутив и колесо. Добавление bdist_wheel не изменяет способ сборки исходного дистрибутива.

Вернуться на верх