Python - 递归地在setup.py中包含包数据

时间:2016-10-13 21:36:49

标签: python setuptools

是否可以配置setup.py以便递归包含包数据?

例如,是否有相同的内容:

setup(...,
      packages=['mypkg'],
      package_data={'mypkg': ['data/*.dat']},
      )

只是指定了文件夹(可能还有一些额外的选项)?

setup(...,
      packages=['mypkg'],
      package_data={'mypkg': ['data']},
      )

示例取自:

https://docs.python.org/2/distutils/setupscript.html#installing-package-data

1 个答案:

答案 0 :(得分:3)

使用外壳程序:

setup(
    ...,
    packages=['mypkg'],
    package_data={'mypkg': ['data/*.dat', 'data/**/*.dat']},
)

data/*.dat将包括所有.dat文件,这些文件直接放置在data中,但不放置在子目录中。 data/**/*.dat将包括放置在.dat的任何子目录中的所有data文件(因此它将包括data/spam/file.datdata/spam/eggs/other.dat等),但包括直接放置在.dat中的所有data文件。因此,两个球都是互斥的;这就是为什么如果要在.dat下包含任何data文件,则总是需要提供两个glob。