使用 distutils setup() 在 python 3 包构建中包含数据的最小用法是什么?
What is the minimal usage for including data in a python 3 package build using distutils setup()?
我正在尝试在 python 3.6.3
中构建我的第一个包。我已经通读了文档并搜索了问题,但似乎无法理解我做错了什么。
我的包目录结构如下:
| - mypkg/
| | - setup.py
| | - someModule/
| | | - __init__.py
| | | - a.py
| | | - b.py
| | | - data /
| | | |- somedata.xml
我的安装脚本是:
#!/usr/bin/env python
from distutils.core import setup
setup(...
packages=['someModule'],
data_files = [('someModule', ['someModule/data/somedata.xml'])]
)
然而,当我 运行 python setup.py build
我的数据没有被添加到 build/lib/mypkg
目录。我究竟做错了什么?
我解决了这个问题。最后使用 package_data
参数而不是 data_files
参数做到了,即我将 setup.py
更改为:
setup(...
packages = ['someModule'],
package_data = {'someModule': ['data/somedata.xml']},
)
感谢@Martijn Pieters 提示 data_files
适用于包外的数据。
我正在尝试在 python 3.6.3
中构建我的第一个包。我已经通读了文档并搜索了问题,但似乎无法理解我做错了什么。
我的包目录结构如下:
| - mypkg/
| | - setup.py
| | - someModule/
| | | - __init__.py
| | | - a.py
| | | - b.py
| | | - data /
| | | |- somedata.xml
我的安装脚本是:
#!/usr/bin/env python
from distutils.core import setup
setup(...
packages=['someModule'],
data_files = [('someModule', ['someModule/data/somedata.xml'])]
)
然而,当我 运行 python setup.py build
我的数据没有被添加到 build/lib/mypkg
目录。我究竟做错了什么?
我解决了这个问题。最后使用 package_data
参数而不是 data_files
参数做到了,即我将 setup.py
更改为:
setup(...
packages = ['someModule'],
package_data = {'someModule': ['data/somedata.xml']},
)
感谢@Martijn Pieters 提示 data_files
适用于包外的数据。