第37章-如何将代码添加到pypi中

我们创建了一个名为 我的数学 在上一章。在本章中,我们将学习如何在Python打包索引(pypi)上共享它。为此,我们首先需要学习如何创建 setup.py 文件。只是回顾一下,这里是我们当前的文件夹层次结构:

mymath/
    __init__.py
    adv/
        __init__.py
        sqrt.py
    add.py
    subtract.py
    multiply.py
    divide.py

这意味着你有一个 我的数学 包含以下文件的文件夹: __init__. py,add.py,subtract.py,multiple.py **和 divide.py .你也会有一个 副词 文件夹 我的数学 文件夹。在 副词 文件夹,您将有两个文件: __init__.py 平方比**。

创建setup.py文件

我们将从创建一个超级简单的 setup.py 脚本。下面是一个简单的例子:

from distutils.core import setup

setup(name='mymath',
      version='0.1',
      packages=['mymath', 'mymath.adv'],
      )

这是您可能在内部为包编写的内容。要上传到pypi,您需要包含更多信息:

from distutils.core import setup

setup(name='mymath',
      version='0.1',
      description='A silly math package',
      author='Mike Driscoll',
      author_email='mike@mymath.org',
      url='http://www.mymath.org/',
      packages=['mymath', 'mymath.adv'],
     )

既然我们已经完成了,我们应该测试一下我们的脚本。您可以使用第35章中的说明创建虚拟环境,也可以通过调用以下命令将代码安装到Python安装中:

python setup.py install

或者,您可以在最后一章结束时使用创建特殊 setup.py 您安装的 发展 模式。你会注意到在最后一章,我们使用 设置工具 在本章中,我们使用 迪斯妥尔 .我们这样做的唯一原因是设置工具 发展 命令和distutils没有。

现在我们需要在pypi中注册我们的包!

正在注册程序包

注册软件包非常容易。因为这是您的第一个包,所以您将希望注册到测试pypi服务器,而不是真正的服务器。您可能需要创建 .pypirc 文件并输入测试pypi服务器地址。有关更多信息,请参阅下一节。完成后,只需运行以下命令:

python setup.py register

您将收到一个选项列表,要求您登录、注册、让服务器向您发送密码或退出。如果您的用户名和密码保存在您的计算机上,您将看不到该消息。如果您已经注册了,您可以登录并上传包的元数据。

将包上载到pypi

您可能希望首先使用pypi的测试服务器进行测试,该服务器位于https://testpypi.python.org/pypi。您也必须在该站点注册,因为它使用的数据库与主站点不同。完成后,您可能希望创建一个 .pypirc 文件位于操作系统路径的某个位置。在Linux上,您可以使用 $主页 要在Windows上找到它,可以使用 HOME 环境变量。此路径是保存该文件的位置。以下是https://wiki.python.org/moin/testpypi中pypirc文件的示例:

[distutils]
index-servers=
    pypi
    test

[test]
repository = https://testpypi.python.org/pypi
username = richard
password = <your password goes here>

[pypi]
repository = http://pypi.python.org/pypi
username = richard
password = <your password goes here>

我强烈建议您深入阅读文档,以了解可以添加到此配置文件中的所有选项。

要将一些文件上载到pypi,您需要创建一些分发版。

python setup.py sdist bdist_wininst upload

当您运行上面的命令时,它将创建一个 dist 文件夹。这个 s列表 命令将创建一个存档文件(Windows上的zip文件,Linux上的tarball文件)。这个 bdist_wininst 将创建一个简单的Windows Installer可执行文件。这个 上传 然后命令将这两个文件上传到pypi。

在你 setup.py 文件,您可以添加 long_description Pypi将用于在Pypi上为包生成主页的字段。您可以使用RestructedText来格式化描述。或者您可以跳过添加描述并接受pypi的默认格式。

如果您想要完整的命令列表,可以使用 setup.py ,尝试运行以下命令:

python setup.py --help-commands

您还应该添加 README.txt 解释如何安装和使用包的文件。如果你有很多贡献者,它也可以包含一个“谢谢”部分。

总结

现在,您已经了解了将包添加到Python打包索引中的基本知识。如果要向pypi添加python egg,则需要使用easy-install而不是distutils。当您发布下一个版本时,可能需要添加 CHANGES.txt 列出对代码所做更改的文件。有一个很棒的网站叫做 搭便车的包装指南 这将是一个很好的地方,您可以查看更多关于这个令人兴奋的主题的信息。或者,您也可以查看此 tutorial Scott Torborg对这个过程进行了不同的处理。