用于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如何解决这个索引越界问题   HQL表达式中的java Null   未使用mongojackson删除java文档   windows Java编译了我的程序,但我无法运行它   java获取泛型T的类型   用于非IBM Windows计算机的java IBM SDK 7?   java数据库上多线程插入(更新)和单线程顺序插入(更新)的性能比较?   集合是否存在只接受一个条目并允许从映射中获取值的Java映射?   带有共享主键的JavaSpring数据JPA:OneToOne似乎不起作用   java与<>的区别?方法和变量声明中的超级/扩展字符串>   java从终端以调试模式运行jar   java如何找出谁破坏了密钥类型的事件?   osgi在Java中访问一个包的多个版本   如果输入不是整数,java会反复请求用户输入   在java中导入本地库错误   JavaE(fx)剪辑:带有javafx的首选项页面   基本Java映射的orm对象哈希映射(将POJO映射为映射)