当前位置:首页 > Python > 正文

从零开始制作Python Wheel包(小白也能学会的完整指南)

在Python开发中,你是否曾想过如何将自己的代码打包成一个可分发、可安装的格式?Python wheel包就是官方推荐的标准分发格式。本文将手把手教你如何从零开始制作一个wheel包,即使你是编程新手也能轻松上手!

什么是Wheel包?

Wheel(.whl 文件)是Python的一种二进制分发格式,它比传统的源码分发(如.tar.gz)安装更快、更可靠。使用pip安装本地包时,wheel包能避免重复编译,提升效率。

从零开始制作Python Wheel包(小白也能学会的完整指南) Python wheel包  打包Python项目 setuptools教程 pip安装本地包 第1张

准备工作

确保你已安装以下工具:

  • setuptools:用于定义包的元数据和依赖
  • wheel:用于生成 .whl 文件
  • build(推荐):现代打包工具

在终端运行以下命令安装所需工具:

pip install setuptools wheel build  

第一步:创建项目结构

假设我们要打包一个叫 mymath 的简单数学工具库。项目结构如下:

mymath/├── mymath/│   ├── __init__.py│   └── calculator.py├── setup.py└── README.md  

其中 calculator.py 内容如下:

# mymath/calculator.pydef add(a, b):    return a + bdef multiply(a, b):    return a * b  

并在 mymath/__init__.py 中导入函数以便外部调用:

# mymath/__init__.pyfrom .calculator import add, multiply  

第二步:编写 setup.py(使用 setuptools 教程核心)

在项目根目录创建 setup.py 文件,这是打包的关键配置文件:

# setup.pyfrom setuptools import setup, find_packagessetup(    name="mymath",    version="0.1.0",    author="Your Name",    author_email="your.email@example.com",    description="A simple math utility package",    long_description=open("README.md").read(),    long_description_content_type="text/markdown",    url="https://github.com/yourname/mymath",    packages=find_packages(),    classifiers=[        "Programming Language :: Python :: 3",        "License :: OSI Approved :: MIT License",        "Operating System :: OS Independent",    ],    python_requires='>=3.6',)  

注意:find_packages() 会自动发现项目中的所有 Python 包(即包含 __init__.py 的目录)。

第三步:构建Wheel包

在项目根目录打开终端,运行以下命令:

python -m build --wheel  

执行后,你会看到一个 dist/ 目录,里面包含类似 mymath-0.1.0-py3-none-any.whl 的文件——这就是你的wheel包!

第四步:测试安装本地包

现在你可以用 pip安装本地包 来测试它是否工作:

pip install dist/mymath-0.1.0-py3-none-any.whl  

然后在Python中验证:

>>> from mymath import add, multiply>>> add(2, 3)5>>> multiply(4, 5)20  

小贴士与常见问题

  • 每次修改代码后,记得更新 version 号再重新打包。
  • 如果遇到权限问题,可在pip命令后加 --user
  • 使用 pip uninstall mymath 可卸载已安装的包。

总结

通过本教程,你已经掌握了如何使用 setuptools教程 中的核心方法来打包自己的Python项目,并生成标准的 Python wheel包。这不仅方便你自己在不同环境中部署代码,也为将来发布到PyPI打下基础。记住,打包Python项目 是每个开发者都应掌握的基本技能!

祝你打包顺利,代码无忧!