找回密码
 立即注册
首页 业界区 业界 记录 | 个人开发库推送至PyPi流程梳理(ChatGPT to Mark ...

记录 | 个人开发库推送至PyPi流程梳理(ChatGPT to Markdown 工具发布完整流程)

人弧 7 小时前
ChatGPT to Markdown 工具发布完整流程

能把整个流程梳理一遍吗?我备份下,方便下次查阅。(第一性原则)
后面我找时间推送到GitHub
  1. # ChatGPT to Markdown
  2. 一个简单的工具,将ChatGPT导出的zip文件转换为漂亮的Markdown文件。
  3. 使用方法
  4. chatgpt-to-md --help
  5. # 基本用法
  6. chatgpt-to-md conversation.zip
  7. # 指定输出目录
  8. chatgpt-to-md conversation.zip -o ./my_chats
  9. # Python中使用
  10. from chatgpt_to_md import convert
  11. convert("conversation.zip", "./output")
  12. # 功能特点
  13. - ✅ 自动解压zip文件
  14. - ✅ 转换所有对话为独立的Markdown文件
  15. - ✅ 包含YAML front matter元数据
  16. - ✅ 按时间排序对话消息
  17. - ✅ 自动处理文件名中的非法字符
复制代码
第一性原则:从零到发布的本质步骤

核心认知


  • 目标:将本地Python脚本转化为全球可安装的包
  • 本质:创建标准化结构 + 配置元数据 + 构建分发 + 发布
  • 关键:遵循Python包标准,让pip能识别和安装
第一阶段:项目标准化

1.1 创建项目结构
  1. chatgpt-to-md/                    # 项目根目录
  2. ├── src/                         # 源代码目录
  3. │   └── chatgpt_to_md/          # 包目录(与项目名对应)
  4. │       ├── __init__.py         # 包初始化文件
  5. │       └── core.py             # 核心功能代码
  6. ├── tests/                      # 测试目录(可选)
  7. ├── pyproject.toml              # 项目配置(核心)
  8. ├── README.md                   # 项目说明
  9. └── LICENSE                     # 许可证文件
复制代码
1.2 核心文件内容

src/chatgpt_to_md/__init__.py
  1. """ChatGPT to Markdown Converter"""
  2. __version__ = "0.1.0"
  3. __author__ = "Your Name"
  4. from .core import convert, main
  5. __all__ = ["convert", "main"]
复制代码
src/chatgpt_to_md/core.py
  1. import json
  2. import zipfile
  3. import os
  4. from datetime import datetime
  5. import re
  6. def convert(zip_path, output_dir="./chatgpt_output"):
  7.     """主转换函数"""
  8.     # 你的核心代码在这里
  9.     pass
  10. def main():
  11.     """命令行入口点"""
  12.     import argparse
  13.     # 命令行解析代码
  14.     pass
  15. if __name__ == "__main__":
  16.     main()
复制代码
pyproject.toml(项目心脏)
  1. [build-system]
  2. requires = ["setuptools>=45", "wheel"]
  3. build-backend = "setuptools.build_meta"
  4. [project]
  5. name = "chatgpt-md-export"           # 包名(必须唯一)
  6. version = "0.1.0"                   # 版本号
  7. description = "将ChatGPT导出的对话转换为Markdown文件"
  8. authors = [{name = "Your Name", email = "your.email@example.com"}]
  9. readme = "README.md"
  10. license = {text = "MIT"}
  11. requires-python = ">=3.7"
  12. [project.urls]
  13. Homepage = "https://github.com/yourusername/chatgpt-to-md"
  14. [project.scripts]
  15. chatgpt-to-md = "chatgpt_to_md.core:main"
复制代码
README.md
  1. # ChatGPT to Markdown
  2. 简单易用的ChatGPT对话导出工具
  3. ## 安装
  4. ```bash
  5. pip install chatgpt-md-export
复制代码
使用
  1. chatgpt-to-md conversation.zip
复制代码
  1. #### `LICENSE`
  2. ```text
  3. MIT License内容...
复制代码
第二阶段:本地开发测试

2.1 开发模式安装
  1. # 在项目根目录执行
  2. pip install -e .
复制代码
2.2 测试功能
  1. # 测试命令行
  2. chatgpt-to-md --help
  3. # 测试实际功能
  4. chatgpt-to-md test_conversation.zip -o ./test_output
复制代码
第三阶段:构建分发包

3.1 安装构建工具
  1. pip install build
复制代码
3.2 执行构建
  1. # 清理环境(重要!)
  2. rm -rf dist/ build/ src/*.egg-info/
  3. # 构建分发包
  4. python -m build
复制代码
3.3 验证构建结果


  • 检查 dist/ 目录生成两个文件:

    • .tar.gz 源码包
    • .whl 二进制包

第四阶段:发布到PyPI

4.1 准备认证信息

获取API Token(推荐):


  • 访问 https://pypi.org/
  • 注册/登录账户
  • 账户设置 → API tokens → Create token
  • 复制token(以pypi-开头)
1.png

2.jpeg

4.2 安装上传工具
  1. pip install twine
复制代码
4.3 检查包文件
  1. twine check dist/*
复制代码
4.4 执行上传
  1. # 使用API Token上传
  2. twine upload dist/* -u __token__ -p pypi-你的token内容
复制代码
4.5 验证发布


  • 访问 https://pypi.org/project/你的包名/
  • 测试安装:pip install 你的包名
第五阶段:版本更新

5.1 更新版本号

修改 pyproject.toml:
  1. version = "0.1.1"  # 递增版本号
复制代码
5.2 重新发布流程
  1. # 清理
  2. rm -rf dist/ build/ src/*.egg-info/
  3. # 构建
  4. python -m build
  5. # 上传
  6. twine upload dist/* -u __token__ -p pypi-你的token
复制代码
故障排除手册

问题1:认证失败

症状:403 Forbidden 或 Invalid authentication
解决

  • 确认使用 __token__ 作为用户名
  • 确认token以 pypi- 开头
  • 检查token是否有发布权限
问题2:包名冲突

症状:403 Forbidden 或包名已存在
解决

  • 修改 pyproject.toml 中的 name
  • 选择更独特的包名
  • 重新构建上传
问题3:构建警告

症状:许可证格式警告
解决

  • 使用新的许可证格式:license = {text = "MIT"}
问题4:依赖冲突

症状:安装时版本冲突
解决

  • 确保只使用Python标准库
  • 避免不必要的外部依赖
快速参考命令集
  1. # 开发测试
  2. pip install -e .
  3. chatgpt-to-md --help
  4. # 构建发布
  5. pip install build twine
  6. rm -rf dist/ build/ src/*.egg-info/
  7. python -m build
  8. twine check dist/*
  9. twine upload dist/* -u __token__ -p pypi-你的token
  10. # 用户安装
  11. pip install 你的包名
复制代码
核心要点总结


  • 结构标准化:src/包名/ + pyproject.toml
  • 入口明确:通过[project.scripts]定义命令行工具
  • 元数据完整:名称、版本、描述、作者、许可证
  • 构建清洁:每次发布前清理旧构建
  • 认证安全:使用API Token而非密码
  • 测试先行:先在TestPyPI测试,再发正式版
这个流程适用于任何Python工具的发布,只需替换核心功能代码即可。记住:标准化结构是成功发布的关键!

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册