Python-wheel-打包文件

介绍

.whl 文件是 Python 的一种打包格式, 称为 wheel, 是一种用于分发和安装 Python 包的标准格式.

与传统的源代码包相比, .whl 文件可以直接安装, 无需在安装过程中编译代码, 因而速度更快. .whl 文件还会包含所有依赖项,方便用户安装和管理.

构建 whl 文件

需要利用 setuptools 工具, 在项目目录中确保有 setup.py 文件, 然后运行:

1
python setup.py bdist_wheel

则会在 dist 目录下生成 .whl 文件.

一个示例:

1
2
3
4
5
6
7
my_package/

├── my_package/
│ ├── __init__.py
│ └── hello.py

└── setup.py

my_package/hello.py 的内容为:

1
2
def say_hello(name):
return f"Hello, {name}!"

my_package/__init__.py 的内容为:

1
from .hello import say_hello

setup.py 的内容为:

1
2
3
4
5
6
7
8
9
10
11
12
from setuptools import setup, find_packages

setup(
name='my_package',
version='0.1',
author='Your Name',
author_email='your.email@example.com',
description='A simple hello world package',
packages=find_packages(),
install_requires=[], # 可以在这里添加依赖包
python_requires='>=3.6', # 指定 Python 版本要求
)

运行:

1
python setup.py bdist_wheel

结果为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tree
.
├── build
│   ├── bdist.linux-x86_64
│   └── lib
│   └── my_package
│   ├── hello.py
│   └── __init__.py
├── dist
│   └── my_package-0.1-py3-none-any.whl
├── my_package
│   ├── hello.py
│   └── __init__.py
├── my_package.egg-info
│   ├── dependency_links.txt
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   └── top_level.txt
└── setup.py

安装 whl 文件

1
pip install my_package-0.1-py3-none-any.whl

在 Linux 上, 默认安装到 /usr/lib/pythonX.X/site-packages 目录下, 若在虚拟环境中, 则是 <your_virtualenv>/lib/pythonX.X/site-packages.


Python-wheel-打包文件
http://example.com/2024/11/01/Python-wheel-打包文件/
作者
Jie
发布于
2024年11月1日
许可协议