用于git的setuptools版本控制系统插件
setuptools-git的Python项目详细描述
关于
这是一个用于setuptools的插件,它支持git集成。一次 安装后,可以告诉setuptools包含在包分发中 git跟踪的所有文件。这是显式 包含规范与MANIFEST.in。
这里的包分发指的是使用 setup.py,例如:
$> python setup.py sdist $> python setup.py bdist_rpm $> python setup.py bdist_egg
这个包以前称为gitlsfiles。改名是 setuptools插件开发人员努力提供 统一命名约定。
安装
使用简易安装:
$> easy_install setuptools_git
替代手动安装:
$> tar -zxvf setuptools_git-X.Y.Z.tar.gz $> cd setuptools_git-X.Y.Z $> python setup.py install
其中x.y.z是版本号。
用法
要激活这个插件,必须首先打包python模块 使用setup.py并使用setuptools。前者在 这是distutils manual。
要使用setuptools而不是distutils,只需编辑setup.py和 更改:
fromdistutils.coreimportsetup
收件人:
fromsetuptoolsimportsetup,find_packages
当setuptools生成源包时,它始终包含所有文件 如果你的版本控制系统知道如何学习 那些文件是。
当setuptools构建二进制包时,可以要求它包含所有 通过添加以下参数,修订控制系统跟踪的文件 调用setup():
setup(...,packages=find_packages(),include_package_data=True,...)
如果目录包含 __init__.py文件。或者,可以不使用__init__.py 文件并明确告诉setuptools要处理哪些包:
setup(...,packages=["a_package","another_one"],include_package_data=True,...)
这个插件让setuptools知道你的git跟踪了哪些文件 修订控制工具。setuptools附带了对cvs和 颠覆。其他类似这样的插件可用于bzr、darcs, 单调,多变,还有许多其他的。
您可能会使用修订控制系统跟踪文件 你不想包含在你的包里。那样的话,你 可以防止setuptools使用 您的MANIFEST.in,例如:
exclude .gitignore recursive-exclude images *.xcf *.blend
在本例中,我们阻止setuptools打包.gitignore和 在images目录下找到的gimp和blender源文件。
要从包中排除的文件也可以在setup()中列出 指令。要执行与上述清单相同的操作,请执行:
setup(...,exclude_package_data={'':['.gitignore'],'images':['*.xcf','*.blend']},...)
下面是另一个示例:
setup(...,exclude_package_data={'':['.gitignore','artwork/*'],'model':['config.py']},...)
有问题
请注意,要使此模块正常工作,git和git 元数据必须可用。也就是说如果有人想 你的非git发行版的包发行版,比如 tarball,setuptools将缺乏必要的信息来知道 要包括的文件。如果有人克隆,同样的问题也会发生 您的git存储库,但不安装此插件。
解决这些问题超出了这个插件的范围;您 如果出现这种情况,应该在文档中添加相关警告 是你关心的问题。
您可以确保克隆git存储库并使用 您的setup.py文件通过添加安装程序所需的 参数:
setup(...,setup_requires=["setuptools_git >= 0.3",],...)
更改
1.2;2017-02-17
- Add ability to get version from git tags (https://github.com/msabramo/setuptools-git/pull/9)
- Return early if a directory isn’t managed by git (https://github.com/msabramo/setuptools-git/pull/10)
- Support universal wheels (https://github.com/msabramo/setuptools-git/pull/11)
- Optimize directory scanning to skip ignored directories (https://github.com/msabramo/setuptools-git/pull/12)
参考文献
感谢Zooko O’Whielacronx对文档的许多改进。