我在setup.py脚本中包含数据文件时遇到问题。我的包装设置如下:
my_package/
setup.py
MANIFEST.in
my_package/
__init__.py
access_data.py
data_files/
my_data_file.csv
我希望在安装时包含my_data_file.csv
文件,以便access_data.py
可以读取它。为此,我在package_data
中使用了setuptools
关键字:
setup(...,
packages=['my_package'],
package_data={'my_package': ['./my_package/data_files/my_data_file.csv']},
include_package_data=True
)
我还将文件包含在MANIFEST.in
:
recursive-include my_package/data_files *
setup.py
似乎运行良好并且不会抛出任何错误。但是,当我导入包时,我收到一个找不到文件的错误,因为缺少my_data_file.csv
。我已经尝试引用其他堆栈溢出问题(特别是this one),但无法弄清楚我做错了什么。如何让setup.py包含必要的数据文件?
答案 0 :(得分:4)
如果它列在setup.py
的{{1}}中(正确),则不需要将其包含在package_data
中(因为它会自动包含在内)
在您的情况下,错误在于您的MANIFEST.in
行,路径相对于命名空间的根
在你的情况下应该是:
package_data
另请注意,包数据中的键是虚线模块路径(但它与此玩具箱并不相关)。