use*_*153 5 python packaging setuptools setup.py
我在setup.py脚本中包含数据文件时遇到麻烦。我的程序包设置如下:
my_package/
setup.py
MANIFEST.in
my_package/
__init__.py
access_data.py
data_files/
my_data_file.csv
Run Code Online (Sandbox Code Playgroud)
我想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
)
Run Code Online (Sandbox Code Playgroud)
我还将文件包含在MANIFEST.in:
recursive-include my_package/data_files *
Run Code Online (Sandbox Code Playgroud)
setup.py似乎运行良好,并且不会引发任何错误。但是,当我导入程序包时,我得到一个文件找不到错误,因为my_data_file.csv丢失了。我尝试引用其他堆栈溢出问题(尤其是这个问题),但无法弄清楚我在做什么错。如何获取setup.py以包含必要的数据文件?
如果在上市setup.py的package_data(正确的),你不应该需要把它列入MANIFEST.in(因为它会自动包含)
在您的情况下,错误出在您的package_data行上,路径是相对于名称空间根目录的
在您的情况下,应为:
package_data={'my_package': ['data_files/my_data_file.csv']},
Run Code Online (Sandbox Code Playgroud)
还要注意,包装数据中的键是点划线的模块路径(但是,对于此玩具盒而言,它不是超级相关)。
| 归档时间: |
|
| 查看次数: |
2342 次 |
| 最近记录: |