fro*_*die 13 python distutils distribution
我正在打包一个小的Python项目作为zip或egg文件,以便它可以分发.我有两种方法可以包含项目的配置文件,这两种方法似乎产生相同的结果.
方法1:
在setup.py中包含此代码:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage'],
data_files = [('config', ['config\propFiles1.ini',
'config\propFiles2.ini',
'config\propFiles3.ini'])]
)
Run Code Online (Sandbox Code Playgroud)
方法2:
在setup.py中包含此代码:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage']
)
Run Code Online (Sandbox Code Playgroud)
然后,使用此行创建一个MANIFEST.in文件:
include config\*
Run Code Online (Sandbox Code Playgroud)
方法之间有什么区别吗?哪一个更受欢迎?我倾向于倾向于第一个,因为那时根本不需要MANIFEST.in文件.但是,在第一种方法中,您必须单独指定每个文件,而在第二种方法中,您可以只包括整个文件夹.还有什么我应该考虑的吗?什么是标准做法?
Ian*_*ing 27
MANIFEST.in控制调用时将哪些文件放入分发zip文件中python setup.py sdist.它无法控制安装的内容. data_files(或更好package_data)控制安装的文件(我认为还确保文件包含在zip文件中).将MANIFEST.in用于您不会安装的文件,例如文档,以及package_data您使用的非Python代码的文件(如图像或模板).