发布Package到PyPI

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 发布Package到PyPI

背景

有没有想法,发布包到PyPI,开源自己的优秀包,如果您愿意,那么本教程将带您实现。

Python Packaging User Guide 官方参考

依赖条件

已经安装好python开发环境,我这里是 python3.10+
开发环境我用的是 visual studio code ,原则上跟IDE版本没关系
您已经申请了PyPI账号,配置好环境变量。 PyPI账号申请以及配置方法

主要步骤

  1. 创建一个项目文件夹,并初始化项目,这里项目名称是 HomePy

    结构如下:

    HomePy
    └── src
     ├── HomePy
     ├    ├── __init__.py
     ├    └── example.py
     ├── tests
     ├── LICENSE
     ├── pyproject.toml
     ├── README.md
     └── requirements.txt
    
  2. 修改 pyproject.toml 文件,内容如下:
[project]
name = "HomePy"
dynamic = ["version", "dependencies"]
authors = [
  { name="Jack Li", email="lizhq08@gmail.com" },
]
description = "A Home python useful package"
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
]

[tool.setuptools.dynamic]
version = {attr = "src.__version__"}
dependencies = {file = ["requirements.txt"]}

[project.urls]
"Homepage" = "https://github.com/lizhq/HomePy"
"Bug Tracker" = "https://github.com/lizhq/HomePy/issues"
  1. 安装依赖,编译package包

这里假设您的安装包已经编写了代码,并且已经编写了 __init__.py 文件
这里假设您已经配置好PyPI账号,并且配置好环境变量。

python3 -m pip install --upgrade pip

python3 -m pip install --upgrade build

python3 -m build
  1. 发布包到PyPI
python3 -m twine upload --repository pypi dist/*
  1. 验证包是否上传成功

验证安装分发包是否存在 HomePy

目录
相关文章
|
11月前
|
API Python
pypi发布问题
我最经在发布我的更新包的时候遇到了ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/ Invalid or non-existent authentication information. See https://pypi.org/help/#invalid-auth for more information.这样的问题。
|
23天前
|
Go
Golang语言基于GOPATH方式管理包(package)
这篇文章详细介绍了Golang语言中基于GOPATH方式管理包(package)的方法,包括包的概述、定义、引入格式、别名使用、匿名引入,以及如何快速入门自定义包,并通过具体代码案例展示了包的环境准备、代码编写、细节说明和程序运行。
30 3
|
1月前
|
JavaScript
GitHub——自动发布NPM包
GitHub——自动发布NPM包
13 0
|
4月前
|
JavaScript 开发者 资源调度
Spartacus 2211 开发版本采用 npm install 结合 package-lock.json 避免 build 出错
Spartacus 2211 开发版本采用 npm install 结合 package-lock.json 避免 build 出错
Spartacus 2211 开发版本采用 npm install 结合 package-lock.json 避免 build 出错
|
4月前
|
存储 API 索引
将 pyparamvalidate 项目,发布至 pypi
将 pyparamvalidate 项目,发布至 pypi
37 3
|
4月前
|
Java 测试技术 Maven
maven的package、install、deploy命令
maven的package、install、deploy命令
108 0
|
11月前
【npm】将自己的包(package)提交到npm registry
【npm】将自己的包(package)提交到npm registry
212 0
|
前端开发 JavaScript 开发工具
如何使用lerna进行多包(package)管理
如何使用lerna进行多包(package)管理
499 0
如何使用lerna进行多包(package)管理
|
Python
Python实战:GitHub Actions自动构建pypa/gh-action-pypi-publish自动发布新版本到pypi
Python实战:GitHub Actions自动构建pypa/gh-action-pypi-publish自动发布新版本到pypi
212 0
|
算法 Python
包引入报错 ImportError: cannot import name ‘best_partition‘ from ‘community‘
包引入报错 ImportError: cannot import name ‘best_partition‘ from ‘community‘
包引入报错 ImportError: cannot import name ‘best_partition‘ from ‘community‘