使用 setuptools 使用 Python 库安装数据文件位置

installed data files location with a Python library using setuptools

我正在构建和发布一个 Python 库,我需要在其中有一个模板文件 (xml) 供以后编辑和写入磁盘。

比方说,我的包目录中有 template.xml

我读到有两种方法:

  1. MANIFEST.ininclude mypackage/template.xml
  2. setup.py中指定:package_data={'mypackage': ['template.xml']}

在这两种情况下,我都保留了选项 include_package_data=True

看来,文件是放入egg中的。 然后我使用 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 解决了问题。

我在这个答案上找到了思路 但没有解释为什么。