zoukankan      html  css  js  c++  java
  • 如何在Pypi上发表自己的Python库

    背景

    最近兴趣使然写了几个Python库,也发布到了Pypi上,虽然没什么人下载,但自己在其他机器上用着也会很方便。这里我向大家介绍一下如何在Pypi上发表自己的Python库。


    准备

    注册账号

    很显然地要在Pypi上注册一个账号。

    安装必要的库

    setuptools

    原则上安装了pip的环境都有setuptools,但并不影响你去尝试升级一下它。

    pip install --upgrade setuptools

    twine

    这是一个简化将库发布到Pypi上流程的工具,具体的使用之后会讲到。

    pip install --upgrade setuptools

    克隆仓库(推荐)

    大名鼎鼎的requests库的作者大神kennethreitz为大家准备了一个仓库作为一个setup.py的很好的模板,当然你也可以自己手写setup.py。

    git clone  https://github.com/kennethreitz/setup.py

    编码

    编辑setup.py

    建议大家直接编辑之前的仓库里的setup.py, 只需要修改一些必要的配置就可以了。这是我最近编写的库condition_chain的配置。

    ...
    # Package meta-data.
    NAME = 'condition_chain'
    DESCRIPTION = 'Process a series of conditional judgement with a chained call.'
    URL = 'https://github.com/duyixian1234/condition_chain'
    EMAIL = 'duyixian1234@outlook.com'
    AUTHOR = 'Yixian Du'
    
    # What packages are required for this module to be executed?
    REQUIRED = [
        # 'requests', 'maya', 'records',
    ]
    ...

    编写核心代码

    接下来我们就可以编写自己的代码了,要注意源代码文件夹(仓库里的my_package文件夹)的名字与setup.py里配置的包名(Name)要一致。
    另外在重新上传之前我们要修改__version__.py里的版本号,以免覆盖了以前的上传(相信会有人是需要之前版本的库的)。
    最终的代码结构

    │  LICENSE
    │  MANIFEST.in
    │  README.rst
    │  setup.py
    │
    └─condition_chain
            core.py
            __init__.py
            __version__.py
    

    打包上传

    在setup.py的同级目录下运行以下命令。

    python setup.py sdist bdist_wheel

    然后运行

    twine upload dist/*

    注意要输入Pypi账号和密码。


    大功告成

    之后我们就可以在Pypi里搜索到自己的Python库了,当然也可以直接通过pip安装。

  • 相关阅读:
    Python中所有的关键字
    关于selenium的8种元素定位
    对提示框的操作
    selenium+webservice进行百度登录
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled...报错解决
    Vue中使用echarts
    npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142解决方法
    插入排序
    冒泡排序优化
    roject 'org.springframework.boot:spring-boot-starter-parent:XXX' not found 解决
  • 原文地址:https://www.cnblogs.com/yixianclove/p/7776792.html
Copyright © 2011-2022 走看看