1

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

存在一个配置文件,应用程序从中读取某些设置。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',))

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

谁能帮我解决这个问题?

4

1 回答 1

6

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

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

在后台project.install_file()正在修改distutilsdata_files一部分setup.py

我的配置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")
于 2016-05-25T09:55:07.923 回答