2016-05-24 8 views
0

Мой текущий проект находится в python. Для сборки пакета сборки и тестирования модулей я использую утилиту Pybuilder, и это довольно круто. Я использовал колесо для установки модуля в другие системы.Pybuilder - файлы, отличные от python, не упакованы

Существует файл конфигурации, из которого определенные настройки считываются приложением. Файл 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 (колесо). I хочу, чтобы файл колеса включал settings.ini в каталоге conf/. В googling получена информация о том, что добавление поля package_data в setup.py решит эту проблему. Но с build.py от Pybuilder я не могу сделать это успешно.

Может ли кто-нибудь помочь мне решить эту проблему?

ответ

2

Я отправил по электронной почте Макс (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")