用于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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java构造函数的无参数形式   JAVAutil。NoTouchElementException错误不知道如何修复   java启动一个alreadybuilt模块,用于另一个模块的集成测试   在Java中,循环同时在两个树映射上迭代   用我的JSON文件信息填充数组时出现java问题   使用netbeans读取输入文件时遇到问题   javassl证书颁发javax。网ssl。SSLHandshakeException:   java在netty的ChannelOption中,超时和连接超时是什么意思?   java Spring引导oauth2响应,重定向url作为基础服务而不是代理(网关)   java如何更好地解决OutOfMemory错误   netbeans Java程序以Java结果终止:137   java CDI生产者始终为空   有没有什么工具可以在java中模拟http请求   java slf4j记录器日志级别未正确继承