使用find_packages()来收集包
我们自己撰写的项目一般不会只由一个或者几个文件组成,而是在习惯上会使用大量目录来对代码进行包管理。find_packages()
提供了对于项目中包的收集功能。
find_packages()
在使用的时候需要提供一个存放包的目录名称,find_packages()
会在这个指定的目录下寻找包。例如:find_packages('src')
。但是需要注意的是,如果仅仅使用find_packages()
来收集包的话,最终生成的发布包中将只会存在__init__.py
和Python代码文件,而不包含其他类型的支持文件。所以如果需要包含其他文件,需要使用package_dir
属性来定义包的目录对应的别名;之后再使用package_data
属性来定义每个包中需要包含的额外文件,这两个属性都接受一个字典类型的值。具体使用可见以下示例。
setup(
...
packages = find_packages('src'),
package_dir = {'': 'src'},
package_data = {
'': ['*.txt],
'data': ['data/*.dat']
}
)