FEATURED · 精选文章

从 import 到 pip install:我的 Python 包诞生全记录

发布时间 / 2026/8/12 12:55:15
来源 / 创域科博编辑部
栏目 / 资讯中心
从 import 到 pip install:我的 Python 包诞生全记录 制作一个属于自己的 Python 包是一件非常有成就感的事而且比想象中要简单。你可以把它发布到 PyPI 供全球开发者使用也可以只在本地或团队内部使用。下面是一份最小可行步骤跟着走一遍你就能拥有自己的包。1. 理解 Python 包的本质一个 Python包就是一个包含__init__.py文件的文件夹里面可以放多个模块.py文件。当你能用pip install安装它它就变成了一个“可分发的包”。2. 创建最简包结构假设你的包名叫mypackage功能是提供一个简单的问候函数。在电脑上新建一个项目文件夹结构如下mypackage-project/ # 项目根目录名字随意 ├── mypackage/ # 真正的包代码 │ ├── __init__.py │ └── greetings.py ├── tests/ # 测试可选但推荐 │ └── __init__.py ├── pyproject.toml # 现代打包配置文件 └── README.md # 说明文档写入代码mypackage/greetings.pydef hello(name): return fHello, {name}! mypackage/__init__.py python from .greetings import hello这样用户就可以直接from mypackage import hello。3. 编写打包配置文件pyproject.toml这是现代 Python 打包的标准方式使用setuptools作为构建后端。[build-system] requires [setuptools61.0] build-backend setuptools.backends._legacy:_Backend [project] name mypackage # 包名PyPI 上唯一 version 0.1.0 description A simple greeting package authors [{ name 你的名字, email youremail.com }] license { text MIT } # 或其它许可证 readme README.md requires-python 3.8 dependencies [] # 你的包依赖的其他库如 [requests] [project.scripts] # 如果希望提供命令行工具 # mycommand mypackage.cli:main注意name在 PyPI 上不能与已有包重复。你可以在 pypi.org 搜索确认。4. 本地安装测试在项目根目录mypackage-project/下打开终端执行pip install -e .-e表示“可编辑模式”代码修改立即生效无需重复安装。现在打开 Python 试试from mypackage import hello print(hello(World)) # 输出 Hello, World!成功你已经拥有了一个可用的本地包。5. 构建分发包当你对代码满意后构建出可以上传的文件pip install build # 安装构建工具 python -m build这会在dist/目录下生成.tar.gz和.whl文件。这两个文件就是可以分享给他人的包。6. 发布到 PyPI可选想让全世界都能pip install mypackage吗注册 PyPI 账号并开启两步验证。安装上传工具pip install twine上传先测试网站后正式站twine upload -r testpypi dist/* # 上传到 Test PyPI 做最终检查 # 如果没问题再上传到正式 PyPI twine upload dist/*过程中会要求输入 PyPI 用户名/密码或使用 API token 更安全。上传成功后任何人只需pip install mypackage就能使用你的包。7. 一个好包的额外修养添加README.md写清楚功能、安装方法和简单示例。添加 LICENSE推荐 MIT 或 Apache 2.0方便他人使用。编写测试tests/文件夹下用pytest写几个测试用例。使用版本控制git init提交代码关联到 GitHub。配置自动化在 GitHub 中设置 Actions实现自动测试和自动发布。常见问题Q我做的东西太简单/没用可以发布吗当然可以很多优秀的包一开始都只是解决个人小需求。发布本身就是一种学习。Q包名我想用的已经被占用了怎么办可以加前缀或后缀比如mypackage-你的名字或者换一个创意命名。Q必须发布到 PyPI 吗不必须。你可以只通过 GitHub 发布或者直接pip install githttps://github.com/你的用户名/仓库名.git安装。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻