用于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应用程序不是在Eclipse中运行,而是在命令行中运行   swing Java图形组件问题。似乎找不到错误   我需要键盘。close();让代码正常工作?   Springboot中的java HttpSession   抽象语法树我想添加一个语句。我试图解析它,java解析器异常被抛出。如何克服它?   java Hibernate:清理会话   具有不连续子集的java划分问题   java正则表达式查找最后一个冒号后的字符串   java从SpringShell执行OS命令   Java扫描器字符串输入   java字符串索引越界异常(charAt)   java执行器服务终止被卡住   Springockito没有继承java@ContextConfiguration   java如何为一个servlet映射多个url   java安卓获取命令的stderr   java生成类型。表:数据库中的大数字   安卓 Getter Setter返回NothingJava