Pybuilder - не-Python файлы не упакованы
Мой текущий проект в Python. Для генерации сборочного пакета + запуска тестового модуля я использую утилиту Pybuilder, и она довольно крутая. Я использовал распределение колес для установки модуля в других системах.
Существует файл конфигурации, из которого приложение считывает определенные настройки. Файл settings.ini находится по следующему пути,
PROJECT-ROOT
|---- src
|-main
|-python
|- foo
|- conf
| |- settings.ini
|
|-test.py
|-access.py
pybuilder автоматически создает setup.py из сценария build.py. Проблема в том, что бинарный дистрибутив колеса не упаковывает файлы, не относящиеся к Python (*.ini-файл). При поиске в SO сообщениях такая информация, как добавление в MANIFEST.mf, решит эту проблему. Но при добавлении
project._manifest_include_directory('foo/conf', ('*.ini',))
Это только обновлено foo/conf/settings.ini
в sdist, а не на bdist (колесе). Я хочу, чтобы файл колеса включал settings.ini в каталог conf /. По поиску, получил информацию, что дополнение package_data
поле в setup.py решит эту проблему. Но с build.py Pybuilder я не могу сделать это успешно.
Может ли кто-нибудь помочь мне решить эту проблему?
1 ответ
Я написал Максу ( https://github.com/mriehl), который является одним из авторов кода PyBuilder в github. Он предложил мне попробовать project.install_file()
вариант.
Я попробовал этот вариант, и он работал для меня. Спасибо Макс. Я хочу поделиться этой информацией в этой теме, чтобы она была полезна кому-то в будущем!
На заднем фоне project.install_file()
модифицирует data_files
часть setup.py
distutils.
Моя конфигурация в build.py
являются следующими,
@init
def initialize (project):
# File is installed relative to sys.prefix
project.install_file("Lib/site-packages/foo/conf","foo/conf/settings.ini")