Python 项目打包,并上传到 PyPI,分享项目

简介: 本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。

如何打包一个简单的Python项目,构建软件包,以及将其上传到 Python 软件包索引,分享你的项目。

分为如下几步:新建项目、构建项目、上传项目、安装项目

Poetry
macOS Homebrew 安装 Poetry

brew install poetry
Poetry:https://python-poetry.org

构建项目
新建项目
poetry new project_name
初始化项目
poetry init
配置文件
实例(iGTTS):pyproject.toml

[project]
name = "iGTTS"
version = "0.1.1"
description = "Gemini TTS CLI"
authors = [
{name = "iChochy",email = "me@ichochy.com"}
]
readme = "docs/README.md"
keywords = ["TTS", "Gemini"]
license-files = "LICENSE"
license = {text = "MIT"}
requires-python = ">=3.13"

dependencies = [
"google-genai (>=1.36.0,<2.0.0)"
]

[project.scripts]
igtts = "igtts:main"

[project.urls]
Homepage = "https://tts.ichochy.com"

[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
说明:
dependencies:声明项目的所需依赖包
[project.scripts]:声明项目的命令脚本
[build-system]:声明项目的构建系统

构建项目
配置好 pyproject.toml后,通过配置文件构建项目

poetry build

Building iGTTS (0.1.1)
Building sdist

  • Building sdist
  • Built igtts-0.1.1.tar.gz
    Building wheel
  • Building wheel
  • Built igtts-0.1.1-py3-none-any.whl
    打包项目文件

dist/
├── igtts-0.1.0.tar.gz
└── igtts-0.1.0-py3-none-any.whl
上传项目
创建 token
在 PyPI 账户设置中创建一个 API token
添加 PyPI token:https://pypi.org/manage/account/token/

pypi-AgEIcHlwaS5vcmcCJDVl...
Poetry 配置 token
poetry config pypi-token.pypi pypi-AgEIcHlwaS5vcmcCJDVl...
发布(publish)

poetry publish

Publishing iGTTS (0.1.2) to PyPI

  • Uploading igtts-0.1.2-py3-none-any.whl 100%
  • Uploading igtts-0.1.2.tar.gz 100%
    构建 + 发布(build + publish)
    poetry publish --build
    安装项目
    pip install igtts

Collecting igtts
Using cached igtts-0.1.2-py3-none-any.whl (10 kB)
Installing collected packages: igtts
Successfully installed igtts-0.1.2
运行项目

igtts

语音内容: Hello,这是一个 Gemini TTS CLI 工具,记...
语音名称: Zephyr
开始生成音频...
音频已成功保存到 'output.wav'
iGTTS
一个 Gemini TTS 的终端命名工具,可以将文本信息转为音频文件的终端命令。

iGTTS
https://tts.ichochy.com

总结
至此,使用 Poetry 创建项目、构建打包,再到发布和安装。走完了整个项目发布到 PyPI 流程。

相关文章
|
2月前
|
Python
Python项目配置Dockerfile
该Dockerfile基于阿里云Alinux3的Python 3.11.1镜像构建,使用阿里云PyPI镜像加速依赖安装,部署一个运行于5000端口、时区为上海的Python应用。
142 1
|
4天前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
40 1
|
4天前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
35 0
|
4月前
|
监控 大数据 API
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化
|
6月前
|
Shell 开发者 Docker
Python文件打包:一站式指南
本文深入探讨Python文件打包的各种方法,从基础的zip和tar工具到高级的setuptools、PyInstaller、cx_Freeze等,涵盖Docker镜像、虚拟环境及自包含可执行文件的打包方式。通过示例代码与详细解析,帮助开发者根据项目需求选择合适的打包方案,提升代码分发与部署效率。内容全面,适合各水平读者学习参考。
453 7
|
安全 Java Python
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
|
存储 JSON NoSQL
Python | Python学习之常用项目代码(一)
Python | Python学习之常用项目代码(一)
123 0
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。
|
机器学习/深度学习 数据采集 数据可视化
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。

推荐镜像

更多