侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

在 pypi 发布我的包

barwe
2022-06-24 / 0 评论 / 0 点赞 / 1,152 阅读 / 1,464 字
温馨提示:
本文最后更新于 2022-06-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

准备 setup.py

自己的包写好后还需要准备一个setup.py文件用于打包和安装,结构如下

my-package/
|- mypkg/
   |- utils/
|- setup.py

一个简单的示例文件:

#!/usr/bin/env python
# coding: utf-8
from setuptools import setup

setup(
    name='包的名字,这里是 mypkg',
    version='发布的版本,例如 0.0.1',
    author='作者,例如 barwe',
    author_email='作者邮箱,例如 barwechin@163.com',
    url='包发布的地址,例如 https://pypi.org/project/docxt',
    description='对包功能的一个简要描述',
    # 需要打包的目录,只有这些目录才能 from import
    packages=['mypkg', 'mypkg.utils'],
    # 安装此包时需要同时安装的依赖包
    install_requires=['beautifulsoup4'],
)

本地打包

执行下面这个命令开始打包:

python setup.py sdist

这将在setup.py文件同级目录下生成一个 dist 目录,其结构为

my-package/
|- setup.py
|- dist/
   |- mypkg-0.0.1.tar.gz

本地安装和更新

打完包后可以先本地安装测试一下功能是不是都正常。

pip install dist/mypkg-0.0.1.tar.gz

上传到 pypi

先安装上传工具 twine:

pip install twine

注册 pypi 账户:https://pypi.org/

找到 Account settings → API tokens,新建一个 API token:

image-20220624144911547

  • Token name:填一个 token 名称,与已有 token 不能重复
  • Scope:选择 Entire account (all projects),也可以为单独的项目生成 token

生成的 token 值是一个以 pypi- 开头的很长的字符串。

然后配置免密上传:

[pypi]
repository = https://upload.pypi.org/legacy/
username = __token__
password = 这里填以pypi-开头的的那个很长的token值

然后上传打包结果:

$ twine upload dist/mypkg-0.0.1.tar.gz
Uploading distributions to https://upload.pypi.org/legacy/
Uploading docxt-0.1.2.tar.gz
100%|███████████████████████████████| 6.10k/6.10k [00:02<00:00, 2.42kB/s]

View at:
https://pypi.org/project/docxt/0.1.2/

从 pypi 安装和更新

安装:

pip install mypkg

升级:

pip install --upgrade mypkg

如果 pip 没有使用官方源,更新时版本可能滞后,可以从官方源安装和升级:

pip install -i https://pypi.python.org/simple mypkg
pip install -i https://pypi.python.org/simple --upgrade mypkg

或者将官方源加入备用源文件:

pip config set global.extra-index-url https://pypi.python.org/simple
0

评论区