zoukankan      html  css  js  c++  java
  • 如何将你自己的Python package发布到PyPI上

    零、前言

    最近做了一个小工具,查询IP或者域名的归属地。做完之后想发布到PyPI上,这样大家就可以通过pip来安装了。

    在发布的过程中遇到了一些问题,也学到了很多东西。记录到这篇文章中。希望对大家有所帮助。

    一、准备工作

    首先需要在PyPI网站上注册一个帐号,这样才能上传自己的package。

    打开PyPI首页,可以看到右上角有Register按钮,点击:

    之后填写必要的信息,然后到邮箱点击激活邮件中的链接就可以了。

    注意:密码需要包含字母、数字,或者长度超过16位。

    注册好帐号之后,我们就可以开始将自己的package标准化了。

    二、标准化

    标准化其实是我自己起的名,具体的意思就是将自己的package修改成可以在PyPI上发布需要的过程。

    标准化主要是添加一些文件,比如更新记录,readme等等。

    具体的可以参考这篇文章,我这里简单的记录一下流程:

    1. 修改目录结构,最起码要在根目录下添加一个__init__.py。
    2. 如果没有可执行脚本,比如只用于import,那么不需要bin/文件夹。
    3. 创建一个CHANGES.txt,记录版本更新内容。
    4. 如果有文档,放到docs文件夹中。
    5. 创建LICENSE.txt文件,内容是开源协议。
    6. 创建MANIFEST.in文件,这个文件的作用是告诉PyPI要包含什么文件。因为像txt这样的文件默认是不包含的。
    7. 创建README.txt,写一些package的介绍。
    8. 创建setup.py文件,这个是最重要的。

    着重说一下最后一步,创建setup.py文件。

    from distutils.core import setup
    
    setup(
        name='TowelStuff',
        version='0.1.0',
        author='J. Random Hacker',
        author_email='jrh@example.com',
        packages=['towelstuff', 'towelstuff.test'],
        scripts=['bin/stowe-towels.py','bin/wash-towels.py'],
        url='http://pypi.python.org/pypi/TowelStuff/',
        license='LICENSE.txt',
        description='Useful towel-related stuff.',
        long_description=open('README.txt').read(),
        install_requires=[
            "Django >= 1.1.1",
            "caldav == 0.1.4",
        ],
    )

    这是非常简单的一个例子,下面说一下各项的作用。

    name:package的名字

    version:版本号

    author:作者

    author_email:作者的邮箱

    packages:这个是package内包含的所有package,对于一个小package来说,就是包含它本身

    scripts:可执行脚本,如果没有就省略这项

    url:项目的链接,可以链接到github上

    license:开源协议的名称

    description:简单的项目描述

    long_description:详细描述,这里是直接把README.txt的内容读了进来

    install_requires:依赖项目,这个如果不会写可以用pip freeze > requirements.txt来查看一下系统中已有package,参考这个格式就行。

    三、上传

    文件都创建好之后,就是上传了。

    首先我们运行

    $ python setup.py register

    选择1,输入用户名和密码,这样就会在PyPI上注册这个项目了。

    注册好之后,实际上还没有上传文件,我们接着运行

    $ python setup.py sdist upload

    这条命令其实做了两件事,第一件是生成tar.gz文件,第二件是上传到PyPI上。

    执行完成之后就搞定了,我们可以运行一下pip install看看是否可以成功安装。

  • 相关阅读:
    Adapter 适配器模式
    词法分析器的作用
    文法、语言、正则表达式
    基于Windows的套接字相关函数及示例
    迭代器和生成器
    反射的使用
    hasattr、getattr、setattr反射
    socket建立tcp、udp链接
    异常处理
    描述符——类型检测,待补充……
  • 原文地址:https://www.cnblogs.com/numbbbbb/p/3584539.html
Copyright © 2011-2022 走看看