在Python中安装包可以使用pip install和conda install从源(清华源、阿里源)进行下载并安装,也可以直接下载下来,并在本地进行安装,具体可参照Python本地安装包和Pytorch安装方法-优快云博客
但是两者区别较大,在处理上也有不同。
1. .tar.gz
格式
特点
- 压缩包:
.tar.gz
是一种压缩文件格式,通常用于分发源代码。 - 包含源代码: 这个格式通常包含 Python 源代码和一个
setup.py
文件,后者定义了如何构建和安装该包。 - 构建步骤: 在安装时,可能需要编译扩展模块,因此安装过程可能较慢,特别是在没有预编译的二进制文件时。
以opencv-python为例,如果源下载下来的是.tar.gz文件(opencv-python-4.10.0.84.tar.gz),那么就是opencv的源代码,需要根据CMake和MinGW Makefiles进行编译呈二进制代码,然后在进行安装,十分麻烦,具体可参照VS上配置opencv的C++版本方式。但是如果说没有安装CMake以及对应的MinGW或者VS的情况下,安装opencv会出现以下报错:
即:"
Building wheels for collected packages: opencv-python
Building wheel for opencv-python (pyproject.toml) ... error
ERROR: Command errored out with exit status 1:
command: 'F:\anaconda\install1\envs\yolov5_deepsort\python.exe' 'F:\anaconda\install1\envs\yolov5_deepsort\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' build_wheel 'C:\Users\86139\AppData\Local\Temp\tmpsfd_v9r3'
cwd: C:\Users\86139\AppData\Local\Temp\pip-install-yk4djcju\opencv-python_a607267eb1e646f0b22ff1c664f5cbd3
Complete output (76 lines):
--------------------------------------------------------------------------------
-- Trying 'MinGW Makefiles' generator
"
但一些不需要构建的情况则可以直接进行conda install的本地安装。
2. .whl
格式
特点
- Wheel 文件:
.whl
是一种二进制分发格式,专为 Python 包而设计。 - 快速安装: 因为它是预构建的包,所以安装速度相对较快,尤其是对于包含 C 扩展的库。
- 标准化: Wheel 是 PEP 427(Python Enhancement Proposal)定义的标准格式,官方推荐使用。
由于他是官方推荐的安装格式(opencv_python-4.3.0.38-cp36-cp36m-win32.whl),是已经构件好了的二进制代码,以oencv-python为例,其已经经过了CMake和MinGW Makefiles进行了编译,则可以直接安装和使用。省去了构建的过程。