Python 到 Debian 源包转换实用程序,从 stdeb 分叉
项目描述
stdeb3 - Python 到 Debian 源代码包转换实用程序
这是stdeb的一个端口,具有现代化功能,例如在构建时删除 python2 支持,删除对低于 8 (jessie) (oldstable) 的 Debian 版本的支持,最低要求的 Debhelper 版本,较新的 dh-compat 版本和很多更多的。有关详细信息,请参阅 RELEASE_NOTES.txt。
stdeb3通过新的 distutils 命令 sdist_dsc从 Python 包生成 Debian 源包。为 Debian 软件包提供了自动默认值,但生成的软件包的许多方面都可以自定义(参见下面的自定义部分)。另一个命令bdist_deb创建一个 Debian 二进制包,一个 .deb 文件。install_deb命令安装此 .deb 文件。debianize命令直接在 setup.py 旁边构建一个 debian/目录。
还提供了几个便利实用程序:
pypi-download将查询Python 包索引 (PyPI)以获取包并下载它。
pypi-install将查询Python 包索引 (PyPI)中的包,下载它,从中创建一个 .deb,然后安装 .deb。
py2dsc会将 distutils 构建的源 tarball 转换为 Debian 源包。
py2dsc-deb会将 distutils 构建的源 tarball 转换为 Debian 源包,然后使用 Debian 机器从中构建 .deb 文件。
内容
</nav>Python 3 支持
正如下面更详细的解释,stdeb 的核心是 sdist_dsc distutils 命令。此命令运行一次以生成 Debian 源代码包。这个 Debian 源包可以为 Python 2、Python 3 或两者指定构建包。这现在只能由 python3 解释器执行。默认情况下,只为正在使用的 Python 版本构建包。要覆盖它,请使用 --with-python2=True或--with-python3=True作为 sdist_dsc distutils 命令的参数(或同时使用两者来确定)。例如,要使用 Python 3 解释器仅构建 Python 3 包:
python3 setup.py --command-packages=stdeb3.command bdist_deb
要使用 Python 3 解释器构建 Python 2 和 Python 3 包(并且只有 Python3 包安装脚本):
python3 setup.py --command-packages=stdeb3.command sdist_dsc --with-python2=True --with-python3=True --no-python2-scripts=True bdist_deb
消息
2019-01-31:版本 0.9.0。移植到 stdeb3。有关更改,请参阅 RELEASE_NOTES.txt。
2015 年 2 月 18 日:版本 0.8.5。请参阅下载页面。错误修正:还原了在 virtualenv 中内置时安装到 virtualenv 中的更改。改进:添加 了 –allow-virtualenv-install-location以允许安装到 virtualenv 位置。支持 Debian Squeeze (6)、Debian Wheezy (7)、Ubuntu Precise (12.04)、Ubuntu Trusty (14.04) 和更高版本。
2015-02-16:版本 0.8.4。请参阅下载页面。错误修正:再次适用于 Python 3.4(例如 Ubuntu Trusty)。改进:改进了 Python 3 的自定义(Dirk Thomas 添加了 force-x-python3-version和X-Python3-Version和 Louis 为 Recommends3、Suggests3、Provides3和Replaces3 支持。支持 Debian Squeeze (6)、Debian Wheezy (7)、Ubuntu Precise (12.04)、Ubuntu Trusty (14.04) 及更高版本。
2015-02-14:版本 0.8.3。请参阅下载页面。这是一个错误修复版本,它修复了 Unicode 支持的几个方面。测试通过了 Debian Squeeze (6)、Debian Wheezy (7) 和 Ubuntu Precise (12.04)。对 Python 3.4(例如 Ubuntu Trusty 14.04)的支持被错误地破坏并在 0.8.3 版本中得到修复。
2014 年 8 月 14 日:版本 0.8.2。请参阅下载页面。这是一个错误修复版本,修复了一个严重问题,如果在某些情况下仅请求 Python 3 包,则会导致构建 Python 2 包。
2014-8-10:版本 0.8.1。请参阅下载页面。由于 0.8.0 中的错误,此版本是 0.8 系列的第一个发布版本。自 0.7.1 以来的亮点:
完全支持 Python 3。这包括从 Python 3 运行和为 Python 3 生成包。默认是在使用 Python 3 运行时构建 Python 3 包,在从 Python 2 运行时构建 Python 2 包。命令行选项可以是也用于为其他 Python 解释器构建包。
为源包构建 .changes 文件。例如,虽然这仍然必须签名才能上传到 PPA,但在某些情况下它应该仍然有用。
切换到 Debian 源格式 3.0(被子)。实际上,过去与源代码包一起提供的 .diff.gz 文件现在被 .debian.tar.gz 文件所取代。
使用请求与 PyPI 交谈时验证 SSL 证书。(验证需要请求 >= 0.8.8。)
许多错误修正。
2014-05-05:版本 0.7.1。请参阅下载页面。此版本的亮点(您可能还希望查阅完整的变更日志)。由于 0.7.0 中的错误,此版本是 0.7 系列的第一个发布版本。自 0.6.0 以来的亮点:
新命令:pypi-download 和 pypi-install 分别用于直接从 PyPI 下载和安装包。py2dsc-deb 直接从源 tarball 创建一个 .deb 文件。
新的 distutils 命令: install_deb 让您可以直接将 python 包安装为标准系统包。
许多错误修正,包括 PyPI 的新 URL。
借助 Travis CI,自动运行测试套件
感谢许多人,尤其是 Piotr Ożarowski 对 stdeb 的帮助。
2010-06-18:版本 0.6.0。请参阅下载页面。此版本的亮点(您可能还希望查阅完整的变更日志):
一个新的debianize命令,用于在 setup.py 文件旁边构建一个debian/目录。
Bug修复。
2009-12-30:版本 0.5.0。请参阅下载页面。此版本的亮点(您可能还希望查阅完整的变更日志):
新的pypi-install脚本将自动从Python 包索引 (PyPI)下载、制作 .deb 并安装包。
删除 setuptools 依赖项。
新选项(-guess-conflicts-provides-replaces)查询原始 Debian 软件包的冲突/提供/替换信息。
由于这些更改并修复了一些错误/缺陷,进行了一些小的向后不兼容的更改和弃用。请查看发行说明。
2009-09-27:版本 0.4 发布。请参阅下载页面。此版本切换到 debhelper 7。请参阅0.4 的变更日志。
0.3.2 及以下的版本与 Ubuntu Hardy 兼容。
2009-10-04:版本 0.3.2 发布。请参阅下载页面。请参阅0.3.2 的变更日志
2009-09-27:版本 0.3.1 发布。请参阅下载页面。请参阅0.3.1 的变更日志
2009-02-17:版本 0.2.3 发布。请参阅下载页面。请参阅0.2.3 的变更日志
2009-01-29:版本 0.2.2 发布。请参阅下载页面。请参阅0.2.2 的变更日志
2008-04-26:版本 0.2.1 发布。请参阅下载页面。请参阅0.2.1 的变更日志
2007-04-02:版本 0.2.a1 发布。请参阅旧的下载页面。
2006-06-19:版本 0.1 发布。请参阅旧的下载页面。
命令
pypi-download,命令行命令
pypi-download获取一个包名,查询 PyPI 并下载它:
pypi-download [options] mypackage
pypi-install,命令行命令
pypi-install获取一个包名,查询 PyPI,下载它,构建一个 Debian 源包,然后从中构建 .deb,然后安装它:
pypi-install [options] mypackage
py2dsc,命令行命令
py2dsc获取一个 .tar.gz 源包并从中构建一个 Debian 源包:
py2dsc [options] mypackage-0.1.tar.gz # uses pre-built Python source package
py2dsc-deb,命令行命令
py2dsc-deb获取一个 .tar.gz 源包并构建一个 Debian 源包,然后从中构建一个 .deb 文件:
py2dsc-deb [options] mypackage-0.1.tar.gz # uses pre-built Python source package
sdist_dsc,distutils 命令
所有方法最终都会导致调用sdist_dsc distutils 命令。您可能更喜欢直接这样做:
python3 setup.py --command-packages=stdeb3.command sdist_dsc
Debian 源代码包是由未经修改的 Python 包生成的。以下文件在新创建的子目录deb_dist中生成:
包名_版本名.orig.tar.gz
packagename_versionname-debianversion.dsc
packagename_versionname-debianversion.diff.gz
然后可以使用标准的 Debian 机器(例如 dpkg-buildpackage)将它们编译成二进制包。
bdist_deb,distutils 命令
安装了bdist_deb distutils 命令。这会调用 sdist_dsc 命令,然后在结果上运行 dpkg-buildpackage:
python3 setup.py --command-packages=stdeb3.command bdist_deb
install_deb, distutils 命令
install_deb distutils 命令调用 bdist_deb 命令,然后安装结果。您需要以超级用户权限运行它:
sudo python3 setup.py --command-packages=stdeb3.command install_deb
debianize, distutils 命令
debianize distutils 命令构建与上一个命令相同的debian / 目录,但输出直接放在项目的根文件夹中(与 setup.py 一起)。这对于直接定制 Debian 软件包很有用(而不是使用各种 stdeb 选项来调整生成的软件包)。
python3 setup.py --command-packages=stdeb3.command debianize
关于告诉 distutils 使用 stdeb distutils 命令的说明
Distutils 命令包也可以在 distutils 配置文件中指定(而不是使用setup.py的--command-packages 命令行参数),如distutils 文档中所述。具体来说,您可以将其包含在您的~/.pydistutils.cfg文件中:
[global] command-packages: stdeb3.command
例子
这些都假设您在系统 Python 路径中安装了 stde3b。stdeb3 也适用于非系统 Python 路径(例如 virtualenv)。
快速入门 1:现在从 PyPI 安装一些东西,我不关心其他任何东西
从命令行执行此操作:
pypi-install mypackage
警告:尽管尽了最大努力,stdeb 绝对无法保证所有 Debian 软件包依赖项在没有人工干预的情况下都能正确完成。使用 pypi-install 会绕过您自定义 stdeb 行为的能力。阅读本文档的其余部分以了解如何制作更好的软件包。
快速入门 2:告诉我制作 .deb 的最快方法
(首先,像通常安装 Python 包一样安装 stdeb3。)
使用setup.py文件从目录中执行此操作:
python3 setup.py --command-packages=stdeb3.command bdist_deb
这将创建一个 Debian 源代码包(.dsc、.orig.tar.gz 和 .diff.gz 文件),然后将其编译为您当前系统的 Debian 二进制包 (.deb)。结果将在deb_dist中。
警告:在其他版本的 Ubuntu 或 Debian 上安装 .deb 文件而不是编译它的版本将导致未定义的行为。如果您有扩展模块,它们可能会损坏。即使没有扩展模块,也可能会发生坏事。
出于这个原因,最好为每个 Debian 或 Ubuntu 目标版本构建 Debian 源代码包,然后编译(例如使用Ubuntu 的 PPA )。
快速入门 3:我阅读了警告,所以请告诉我如何制作源代码包,然后编译它
这会生成一个源包:
wget http://pypi.python.org/packages/source/R/Reindent/Reindent-0.1.0.tar.gz py2dsc Reindent-0.1.0.tar.gz
这将使用标准 Debian 工具将其转换为 .deb。( 在每个目标发行版的相同源包上执行此操作):
cd deb_dist/reindent-0.1.0/ dpkg-buildpackage -rfakeroot -uc -us
这将安装它:
cd .. sudo dpkg -i python-reindent_0.1.0-1_all.deb
快速入门 4:从 Python 包直接安装到 debian 系统包
(首先,像通常安装 Python 包一样安装 stdeb。)
使用setup.py文件从目录中执行此操作:
python3 setup.py --command-packages=stdeb3.command install_deb
这将创建一个 Debian 源代码包(.dsc、.orig.tar.gz 和 .diff.gz 文件),将其编译为您当前系统的 Debian 二进制包 (.deb),然后使用dpkg安装它。
另一个例子,有更多解释
如果您没有 Python 源包(由python setup.py sdist生成的 .tar.gz 文件),则此示例更有用。为了说明起见,我们确实下载了这样一个 tarball,但立即解压它(或者,使用版本控制系统获取一个包的解压源):
wget http://pypi.python.org/packages/source/R/Reindent/Reindent-0.1.0.tar.gz tar xzf Reindent-0.1.0.tar.gz cd Reindent-0.1.0
下面将生成一个目录deb_dist,其中包含文件reindent_0.1.0-1.dsc、reindent_0.1.0.orig.tar.gz和 reindent_0.1.0-1.diff.gz,它们一起是一个 debian 源包:
python3 setup.py --command-packages=stdeb3.command sdist_dsc
以上述方式生成的源也被提取(使用 dpkg-source -x)并放置在deb_dist子目录中。继续上面的例子:
cd deb_dist/reindent-0.1.0 dpkg-buildpackage -rfakeroot -uc -us
最后就可以安装生成的包了:
cd .. sudo dpkg -i python-reindent_0.1.0-1_all.deb
对于另一个使用示例,还有更多解释,请参阅 allmydata-tahoe ticket 251。
下载
git 存储库位于 http://github.com/astraw/stdeb
安装(或者,使用 stdeb 创建一个 stdeb 安装程序)
有趣的是,这里是使用 stdeb 安装 stdeb 的方法。注意 stdeb 也在 Debian 和 Ubuntu 中,所以这个秘籍只需要安装更新的 stdeb。
STDEB3_VERSION="0.9.0" # Download stdeb3 wget http://pypi.python.org/packages/source/s/stdeb3/stdeb3-$STDEB3_VERSION.tar.gz # Extract it tar xzf stdeb3-$STDEB3_VERSION.tar.gz # Enter extracted source package cd stdeb3-$STDEB3_VERSION # Build .deb (making use of stdeb package directory in sys.path). python3 setup.py --command-packages=stdeb3.command bdist_deb # Install it sudo dpkg -i deb_dist/python-stdeb3_$STDEB3_VERSION-1_all.deb
背景
对于一般的 Python 包,它的源代码分发(使用python3 setup.py sdist创建的 python_package.tar.gz )几乎包含制作 Debian 源代码包所需的所有内容。这种近似等效的情况鼓励我编写这个 distutils 扩展,它执行 setup.py 文件以提取相关信息。可以选择使用setuptools 。
我最初写这个是为了 Debianize 我自己的几个 Python 包,但我觉得它通常很有用。至少在理论上,它看起来与easydeb、Logilab 的 Devtools、 bdist_dpkg、bdist_deb、pkgme 和dh-virtualenv相似。
特征
为 python-support 支持的所有 Python 版本创建一个包。(使用XS-Python-Version: config 选项可以限制这个范围 。)
将 Python 包名称自动转换为有效的 Debian 包名称。
尝试自动转换版本号以保持顺序。另请参阅配置选项 Forced-Upstream-Version。
版本号的细粒度控制。( Debian-Version , Forced-Upstream-Version , Upstream-Version-Prefix , Upstream-Version-Suffix配置选项。)
安装 .desktop 文件。(MIME-Desktop-Files配置选项。)
安装 .mime 和 .sharedmimeinfo 文件。(MIME-File和 Shared-MIME-File配置选项。)
安装版权文件。(版权文件配置选项。)
将补丁应用于上游源。(Stdeb-Patch-File配置选项。)
将环境变量传递给 setup.py 脚本。(Setup-Env-Vars 配置选项。)
定制生成的 Debian 源码包(配置选项)
stdeb 将尝试提供合理的默认值,但这些只是猜测。
有两种方法可以自定义 stdeb 生成的 Debian 源码包。首先,您可以为 distutils 命令提供选项。其次,您可以提供一个stdeb.cfg文件。
stdeb distutils 命令选项
sdist_dsc 命令采用 distutils 命令的命令行选项。例如:
python3 setup.py --command-packages=stdeb3.command sdist_dsc --debian-version 0MyName1
这将创建一个 Debian 软件包,其 Debian 版本设置为“0MyName1”。
这些选项也可以通过 distutils 配置文件进行设置。(这些是setup.cfg文件以及setup.py和 ~/.pydistutils.cfg 文件。)在这种情况下,将参数放在 [sdist_dsc]部分。例如,项目的~/.setup.cfg 文件可能包含以下内容:
[sdist_dsc] debian-version: 0MyName1
要在调用 bdist_deb 时将这些命令传递给 sdist_dsc,请执行以下操作:
python3 setup.py sdist_dsc --debian-version 0MyName1 bdist_deb
命令行选项 |
影响 |
---|---|
--with-python2 |
构建 Python 2 包(默认 = True) |
--with-python3 |
构建 Python 3 包(默认值=False) |
--no-python2-scripts |
禁用 Python 2 脚本的安装(默认 = False) |
--no-python3-scripts |
禁用 Python 3 脚本的安装(默认值=False) |
--force-x-python3-版本 |
使用 x-python3- 版本中的值覆盖默认的最小 python3:any 依赖项 |
--allow-virtualenv-安装位置 |
允许安装到 /some/random/virtualenv-path |
--sign-results |
使用 gpg 对生成的 .dsc 和 .changes 文件进行签名 |
--sign-key |
使用此 gpg 密钥签名进行签名 |
--dist-dir (-d) |
将最终构建的发行版放入的目录(默认='deb_dist') |
--patch-already-applied (-a) |
补丁已应用(在 py2dsc 调用 sdist_dsc 时使用) |
--默认分布 |
已弃用(请参阅 –suite) |
–套件(-z) |
.cfg 中未指定时使用的分发名称(默认值='unstable') |
--默认维护者 |
已弃用(请参阅–maintainer) |
--维护者(-m) |
如果 .cfg 中未指定,则使用的维护者名称和电子邮件(默认来自 setup.py) |
--extra-cfg 文件 (-x) |
附加 .cfg 文件(如果存在,除了 stdeb.cfg) |
--补丁文件(-p) |
在 setup.py 调用之前应用的补丁文件(与 .cfg 中指定的文件不兼容) |
--补丁级别(-l) |
在 setup.py 调用之前应用的补丁文件(与 .cfg 中指定的文件不兼容) |
--patch-posix (-q) |
使用 –posix 模式应用补丁 |
--remove-expanded-source-dir (-r) |
删除扩展的源目录 |
–忽略安装要求(-i) |
忽略 egg-info 目录中 requires.txt 的要求 |
–猜测冲突提供替换 |
如果为 True,尝试根据 apt-cache 输出猜测 debian/control 中的 Conflicts/Provides/Replaces。(默认=假)。 |
--使用-premade-distfile (-P) |
使用 sdist 命令生成的 .zip 或 .tar.gz 文件 |
-资源 |
debian/control 源:(默认值:<source-debianized-setup-name>) |
-包裹 |
debian/control 软件包:(默认值:python-<debianized-setup-name>) |
-套房 |
变更日志中的套件(例如 stable、lucid)(默认值:不稳定) |
--维护者 |
debian/control 维护者:(默认值:<setup-maintainer-or-author>) |
--debian-版本 |
debian 版本(默认值:1) |
-部分 |
debian/control 部分:(默认值:python) |
-时代 |
版本时代 |
--强制上游版本 |
强制上游版本 |
--upstream-version-prefix |
上游版本前缀 |
--upstream-version-suffix |
上游版本后缀 |
–上传者 |
上传者 |
--版权文件 |
版权文件 |
–构建依赖 |
debian/control Build-Depends: |
--构建冲突 |
debian/control 构建冲突: |
–stdeb 补丁文件 |
包含要应用的 stdeb 补丁的文件 |
–stdeb 补丁级别 |
提供给补丁命令的补丁级别 |
-要看 |
debian/control 取决于: |
– 建议 |
debian/control 建议: |
——推荐 |
debian/control 推荐: |
–xs-python 版本 |
debian/control XS-Python-版本: |
–x-python3-版本 |
debian/control X-Python3-版本: |
–dpkg-shlibdeps-参数 |
传递给 dpkg-shlibdeps 的参数 |
——冲突 |
debian/控制冲突: |
– 提供 |
debian/control 提供: |
--替换 |
debian/control 替换: |
–mime 桌面文件 |
MIME 桌面文件 |
–mime 文件 |
MIME 文件 |
--shared-mime 文件 |
共享 MIME 文件 |
--setup-env-vars |
传递给 setup.py 的环境变量 |
--udev-规则 |
包含要安装到 udev 的规则的文件 |
--with-dh-addons |
采用逗号分隔的 debhelper 附加组件列表以包含在规则文件中 |
您还可以通过 distutils 选项为 stdeb.cfg 文件传递下面描述的任何参数。以这种方式传递参数(在命令行或 distutils .cfg 文件的[sdist_dsc]部分)将优先。选项名称应以小写形式给出。
stdeb.cfg 配置文件
您可以编写ConfigParser可以理解的格式的配置文件。在构建每个包时,stdeb 在 setup.py 目录中查找stdeb.cfg的存在。您可以使用命令行选项 –extra-cfg-file 指定额外的配置文件。该部分应该是 [DEFAULT] 或 [package_name],其中 package_name 被指定为 setup() 命令的 name 参数。示例 stdeb.cfg 文件是:
[DEFAULT] Depends: python3-numpy XS-Python-Version: >= 2.7
所有可用选项:
配置文件选项 |
影响 |
---|---|
资源 |
debian/control 源:(默认值:<source-debianized-setup-name>) |
包裹 |
debian/control 软件包:(默认值:python-<debianized-setup-name>) |
套房 |
变更日志中的套件(例如 stable、lucid)(默认值:不稳定) |
维护者 |
debian/control 维护者:(默认值:<setup-maintainer-or-author>) |
Debian 版本 |
debian 版本(默认值:1) |
部分 |
debian/control 部分:(默认值:python) |
时代 |
版本时代 |
强制上游版本 |
强制上游版本 |
上游版本前缀 |
上游版本前缀 |
上游版本后缀 |
上游版本后缀 |
上传者 |
debian/控制上传器 |
描述 |
覆盖默认自动生成的 debian/control 描述 |
详细描述 |
覆盖默认的 debian/control 长描述 |
主页 |
debian/control 主页: |
版权文件 |
版权文件 |
变更日志 |
指定你自己的 debian/changelog 文件 |
新闻档案 |
用作 debian/NEWS 的文件 |
构建依赖 |
debian/control Build-Depends: |
构建冲突 |
debian/control 构建冲突: |
Stdeb 补丁文件 |
包含要应用的 stdeb 补丁的文件 |
Stdeb 补丁级别 |
提供给补丁命令的补丁级别 |
要看 |
debian/control 取决于: |
取决于3 |
debian/control 取决于:对于 python3 |
建议 |
debian/control 建议: |
建议3 |
debian/control 建议:对于python3 |
推荐 |
debian/control 推荐: |
推荐3 |
debian/control 推荐:对于python3 |
XS-Python-版本 |
debian/control XS-Python-版本: |
X-Python3-版本 |
debian/control X-Python3-版本: |
Dpkg-Shlibdeps-参数 |
传递给 dpkg-shlibdeps 的参数 |
冲突 |
debian/控制冲突: |
冲突3 |
debian/control 冲突:对于 python3 |
休息 |
debian/控制中断: |
休息3 |
debian/control 中断:对于 python3 |
提供 |
debian/control 提供: |
提供3 |
debian/control 提供:对于python3 |
替换 |
debian/control 替换: |
替换3 |
debian/control 替换:对于 python3 |
MIME 桌面文件 |
MIME 桌面文件 |
MIME 文件 |
MIME 文件 |
共享 MIME 文件 |
共享 MIME 文件 |
设置环境变量 |
传递给 setup.py 的环境变量 |
Udev-规则 |
包含要安装到 udev 的规则的文件 |
stdeb.cfg 文件中的选项名称不区分大小写。
先决条件
Python 3.4+
标准 Debian 实用程序,例如date、dpkg-source和 Debhelper 9(如果您需要支持没有 dh9 的旧发行版,请使用 stdeb 0.8.x)
如果您的 setup.py 使用 setuptools 功能setup_requires或 install_requires,则必须在运行任何 stdeb 命令之前运行apt-file update 。
去做
使输出符合Debian Python Policy规范或新的 python policy。这将包括几件事,其中包括:
将项目提供的文档作为 -doc 包包含的能力
将项目提供的示例、测试和数据作为单独的包包含的能力
更多未列出
创建(更好的)文档
使用标准 distutils 机制的日志输出
重构源代码以获得更简单、更理智的设计
执照
MIT 风格的许可证。版权所有 (c) 2006-2019 stdeb 作者。
有关完整的详细信息,请参阅随源分发提供的 LICENSE.txt 文件。
额外学分
Zooko O'Whielacronx 用于 autofind-depends 补丁。
Brett(姓氏不详)用于 –ignore-install-requires 补丁。
Ximin Luo 修复错误。
Alexander D. Sedov 提供错误修复和建议。
Michele Mattioni 修复错误。
Alexander V. Nikolaev 用于 debhelper 构建系统规范。
Roland Sommer 的描述字段错误修复。
Barry Warsaw 建议使用 debianize 命令。
Asheesh Laroia 用于更新 PyPI URL。
Piotr Ożarowski 用于实现 dh_python2 支持。
Nikita Burtsev 用于 unicode 测试和修复
Mikołaj Siedlarek 修复错误
Dirk Thomas 为 –force-x-python3-version 和 X-Python3-Version
Louis 为 Recommends3、Suggests3、Provides3 和 Replaces3 提供支持
kzwin 与 virtualenv 互操作
用于托管服务的GitHub 。
WebFaction(又名python-hosting)用于以前的托管服务。
TravisCI用于持续集成
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
stdeb3-0.9.0.post2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 76e927b457b72756e8848f683b79ff9a6b332eb840024407de128d4472faa339 |
|
MD5 | 341250ae5dbfd1fb7300f424f8064a7b |
|
布莱克2-256 | b76a1a02cf849a55b09c533ce5c2cc5c1aaff40339f1678a70aa629c28dc1334 |