Pybuilder - 非 python 文件未打包

Pybuilder - Non-python files are not packaged

我当前的项目在 python。对于生成包生成 + 单元测试 运行,我正在使用 Pybuilder 实用程序,它非常酷。我使用 wheel distribution 在其他系统中安装模块。

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

PROJECT-ROOT
     |---- src
            |-main
                |-python
                     |- foo
                         |- conf
                         |   |- settings.ini
                         |
                         |-test.py
                         |-access.py

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

 project._manifest_include_directory('foo/conf', ('*.ini',))

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

谁能帮我解决这个问题?

我已经给 Max(https://github.com/mriehl) 发了邮件,他是 github 中 PyBuilder 代码的贡献者之一。他建议我尝试 project.install_file() 选项。

我试过那个选项,它对我有用。感谢马克斯。我想在此线程中分享该信息,以便将来对某人有用!

在后台 project.install_file() 正在修改 distutilssetup.pydata_files 部分。

我在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")