介绍
.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', )
|
运行:
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
.