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,我无法成功执行此操作。
任何人都可以帮我解决这个问题吗?
我给 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)
| 归档时间: |
|
| 查看次数: |
797 次 |
| 最近记录: |