惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
量子位
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
B
Blog
U
Unit 42
C
Check Point Blog
I
InfoQ
aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
爱范儿
爱范儿

回忆中的明天

自己写一个Web 端的MiMo TTS Chat,方便实现文本转语音,API限免中 · 回忆中的明天 NVIDIA NIM 开发平台,提供超多免费大模型 · 回忆中的明天 iTranslation 简单快捷的翻译软件,支持数十种语言互译 · 回忆中的明天 国内外免费大模型平台,支持 API 调用的超多免费大模型 · 回忆中的明天 SiliconFlow 硅基流动一站式大模型云服务平台,提供超多免费大模型 · 回忆中的明天 Xiaomi MiMo 小米大模型团队开发的大语言模型,开源限免中…… · 回忆中的明天 BigModel 智谱大模型开放平台,提供超多自研免费大模型 · 回忆中的明天 OpenRouter 模型聚合平台,提供超多免费模型使用 · 回忆中的明天 iReader 英语点读学习系统,译林小学英语在线点读 · 回忆中的明天 ZenMux 企业级大模型聚合平台,提供免费试用模型 Gemini 3 Pro · 回忆中的明天 英语学习,新概念英语在线点读、全文朗读学习系统 · 回忆中的明天 iGSTT(Gemini STT) 开源免费的语音转文本(STT)的命令行工具 · 回忆中的明天 iGTTS(Gemini TTS) 开源免费的文本转语音(TTS)的命令行工具 · 回忆中的明天 iChat(AI Chat) 智能聊天工具,支持 MiMo、DeepSeek、Gemini、Grok、OpenAI和自定义AI · 回忆中的明天 NanoPi R2S 安装 Debian 固件系统,旁路由网络代理内网转发,决解直连网络卡顿 nftables · 回忆中的明天 NanoPi R2S Armbian Linux 旁路由网络代理内网转发,决解直连网络卡顿 iptables · 回忆中的明天 sing-box rule-set · 回忆中的明天 Xcode 最全最实用的快捷键列表 · 回忆中的明天 SwiftUI 中的@State、@Bindable和@Binding · 回忆中的明天 免费的图床服务器-GitHub Pages · 回忆中的明天 A Free Native Image Uploading Tool for macOS · 回忆中的明天 免费的图床服务器-Cloudflare-R2 · 回忆中的明天 图传 (iUploader) - macOS 免费原生图床上传利器 · 回忆中的明天 本地无法加载托管到Cloudflare中的图片等资源,权限错误403 · 回忆中的明天 国内、外免费公共的DNS,支持的DoH,防止污染、篡改的问题 · 回忆中的明天 macOS 系统下载和安装 · 回忆中的明天 使用 CURL 命令调试和诊断网络问题,网站请求测速 · 回忆中的明天 WARP Beta for macOS 支持新协议 MASQUE · 回忆中的明天 2024年自用国外靠谱的 VPS 服务器推荐 · 回忆中的明天 使用 OpenCore,让你的旧 Mac 用上最新的 macOS 系统 · 回忆中的明天
Python 项目打包,并上传到 PyPI,分享项目 · 回忆中的明天
2025-09-10 · via 回忆中的明天

原文:https://ichochy.com/posts/shell/20250910.html


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

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

Poetry

macOS Homebrew 安装 Poetry

Poetry:https://python-poetry.org

构建项目

新建项目

初始化项目

配置文件(pyproject.toml)介绍:

Poetry 配置文件介绍:https://python-poetry.org/docs/pyproject

Python 编写配置文件: writing-pyproject-toml

配置文件(pyproject.toml)

实例(iGTTS):pyproject.toml

[project]
name = "iGTTS"
version = "0.1.1"
description = "Gemini TTS CLI"
authors = [
    {name = "iChochy",email = "[email protected]"}
]
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]:声明项目的构建系统

安装依赖

poetry install

---------------
Updating dependencies
Resolving dependencies... (0.4s)
.....
Writing lock file

Installing the current project: iGTTS (0.1.2)

构建项目

通过配置文件(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.2.tar.gz
└── igtts-0.1.2-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)

安装项目

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 流程。