我正在构建和发布一个 Python 库,我需要有一个模板文件 (xml( 可供稍后在磁盘上编辑和写入。
比方说,我的template.xml
在我的包目录中。
我读到有两种方法:
- 与
include mypackage/template.xml
MANIFEST.in
- 在
setup.py
中指定:package_data={'mypackage': ['template.xml']}
在这两种情况下,我都保留了选项include_package_data=True
.
显然,文件被放入鸡蛋中。然后我使用sdist
发行版构建我的库并在pypi
上发布(这是在 Travis 中完成的(。但显然我的文件没有安装。或者至少我没有找到它。
为了获取文件,我尝试执行以下操作:
xml_template = pkg_resources.resource_filename('mypackage', 'template.xml')
导致
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.7/site-packages/mypackage/template.xml'
我该怎么办?
,删除include_package_data=True
解决了这个问题。
我在这个答案上找到了这个想法 https://stackoverflow.com/a/33167220/1548052但没有解释为什么。