如何创建、上传和安装PyPI包?

16 投票
6 回答
4926 浏览
提问于 2025-04-16 03:48

我写了一个小模块,现在想知道把它打包上传到 PyPI 的基本步骤是什么:

  • 文件结构应该是什么样的?
  • 文件应该怎么命名?
  • 我需要用 distutils 来创建 PKG-INFO 吗?
  • 我的文档(用 sphinx 制作的)应该放在哪里?

6 个回答

2

也许这个奶酪商店教程对你有帮助。在这里:

提交包到包索引

如果你有一些Python模块或包想要分享给Python社区,我们非常欢迎你把它们放到Python包索引里!首先,如果你还没有这样做,你需要把你的项目整理好。你可以参考项目文件和目录布局的指南。之后,你需要阅读关于创建分发版的Python文档:http://docs.python.org/distutils/index.html

你还可以查看Tarek Ziadé的《在Python中写包》,这本书《专家Python编程》中详细讨论了开发和分发的问题。

3

举个例子总是最好的方法来看看怎么做:

http://packages.python.org/an_example_pypi_project/

12

我推荐你看看《打包指南》。特别是里面的快速入门部分,这里面讲了怎么做:

  1. 整理你的项目结构
  2. 描述你的项目
  3. 创建你的第一个版本
  4. 在Python包索引(PyPI)上注册你的包
  5. 上传你的版本,然后拿好你的毛巾,拯救宇宙!

你还应该看看打包的现状,这个内容在打包简介部分里,能帮助你理清关于setuptools、distutils、distutils2和distribute的一些混乱。

关于文件命名的更新

下面的摘录来自PEP8,它回答了你关于文件命名的问题:

模块的名字应该简短且全小写。如果用下划线能提高可读性,可以在模块名中使用下划线。Python包的名字也应该简短且全小写,不过不建议使用下划线。

因为模块名会映射到文件名,而有些文件系统对大小写不敏感并且会截断长名字,所以模块名最好选得比较短——在Unix系统上这不是问题,但在旧版的Mac、Windows或者DOS上可能会有问题。

撰写回答