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")
Другие вопросы по тегам