Pybuilder - 非python文件未打包

app*_*ppu 1 distutils python-3.x pybuilder

我目前的项目是在 python 中。对于构建包生成 + 单元测试运行,我正在使用Pybuilder实用程序,它非常酷。我使用了车轮分布在其他系统中安装模块。

存在一个配置文件,应用程序从中读取某些设置。settings.ini 文件在以下路径中,

PROJECT-ROOT
     |---- src
            |-main
                |-python
                     |- foo
                         |- conf
                         |   |- settings.ini
                         |
                         |-test.py
                         |-access.py
Run Code Online (Sandbox Code Playgroud)

pybuilder 自动从 build.py 脚本创建 setup.py。问题是二进制轮分发没有打包非 python 文件(*.ini 文件)。在搜索 SO 帖子时,获得诸如在 MANIFEST.mf 中添加之类的信息将解决此问题。但是在添加的同时

 project._manifest_include_directory('foo/conf', ('*.ini',))
Run Code Online (Sandbox Code Playgroud)

它只foo/conf/settings.ini在 sdist 中更新,而不是在 bdist(wheel) 上更新。我希望轮文件在 conf/ 目录中包含 settings.ini。在谷歌上搜索,得到了添加的信息 package_data在 setup.py字段将解决此问题的信息。但是使用 Pybuilder 的 build.py,我无法成功执行此操作。

任何人都可以帮我解决这个问题吗?

app*_*ppu 6

我给 Max( https://github.com/mriehl )发了邮件,他是 github 中 PyBuilder 代码的贡献者之一。他建议我尝试 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")
Run Code Online (Sandbox Code Playgroud)