使用distutils setup()在python 3包构建中包含数据的最小用法是什么?

时间:2018-03-10 16:07:37

标签: python packages setuptools distutils

我正在尝试在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目录中。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。最后使用./certbot/well-known参数代替package_data参数,即我将data_files更改为:

setup.py

感谢@Martijn Pieters提示,setup(... packages = ['someModule'], package_data = {'someModule': ['data/somedata.xml']}, ) 是针对包裹之外的数据。