包含 setup.py 的数据文件
Including data files with setup.py
我在 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
可以读取它。为此,我在 setuptools
:
中使用了 package_data
关键字
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 包含必要的数据文件?
如果它在 setup.py
的 package_data
中列出(正确),则不需要将其包含在 MANIFEST.in
中(因为它将自动包含)
在你的例子中,错误出在你的 package_data
行,路径是相对于命名空间的根
在你的情况下应该是:
package_data={'my_package': ['data_files/my_data_file.csv']},
另请注意,包数据中的关键是点缀的模块路径(然而,它与这个玩具箱并不是特别相关)。
我在 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
可以读取它。为此,我在 setuptools
:
package_data
关键字
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 包含必要的数据文件?
如果它在 setup.py
的 package_data
中列出(正确),则不需要将其包含在 MANIFEST.in
中(因为它将自动包含)
在你的例子中,错误出在你的 package_data
行,路径是相对于命名空间的根
在你的情况下应该是:
package_data={'my_package': ['data_files/my_data_file.csv']},
另请注意,包数据中的关键是点缀的模块路径(然而,它与这个玩具箱并不是特别相关)。