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
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
287 1
|
1月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
2月前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
197 0
|
5月前
|
监控 大数据 API
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
248 102
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
282 104
|
2月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
241 103
|
2月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
178 82

推荐镜像

更多