1.底层原理
c++和c语言可以通过include等手段将第三方的函数拿来进行复用。同样的Python的第三方模块包功能也类似,通过pip这样的包管理工具进行安装的。当你安装一个模块包时,pip会下载相应的代码并将其安装在你的Python环境中,这样就可以在自己的代码中引入这些模块包并使用他们。
2.模块相关的目录结构
列举出一些主要的目录机构
- site-packages 用于存放通过pip安装的第三方模块包。
- dist-packages 在某些Linux发行版中,第三方模块包可能会被安装在dist-packages目录中,而不是site-packages目录。
3.基本使用方法
(1)在线安装和离线安装
- 在线安装
pip3 install 模块名字
以安装numpy
模块为例,使用指令pip3 install numpy
,安装完成以后提示安装的numpy的版本信息为:numpy-1.21.6
。
有时候有些模块的源地址在国外,因为墙的原因很容易导致模块在线安装失败,这个时候我们使用
对于单个模块可以到官网查询对应的模块信息
- 离线安装
先在模块库下载对应版本的模块安装包,文件后缀一般为.whl.
以安装torch
模块为例,将对应centos
平台以及版本号为1.13.1
的模块版本,拷贝到服务器的任意路径下。使用指令pip install ./torch-1.13.1+cpu-cp39-cp39-linux_x86_64.whl
,进行离线安装。
安装成功以后输出以下信息,包括torch模块的版本,以及文件路径
(2)指定版本安装
pip3 install 模块名==版本号
以安装numpy
模块为例,指定安装版本号为1.17.5
,输入指令为pip3 uninstall numpy=1.17.5
,安装成功以后输出以下内容。
(3)模块的卸载
pip3 uninstall 模块包名字
以卸载numpy
模块为例,执行指令pip3 install numpy
该指令以后,需要手动输入y
进行确认卸载,执行成功以后的终端输出,提示卸载的版本为numpy-1.21.6
,以及需要卸载的相关文件的位置。
(4)模块的更新
(5)模块的代码中引用
(6)本地模块查询
pip/pip3 show 模块名
以模块numpy
为例,使用指令pip3 show numpy
,输出信息如下图,一般主要关注两个部分:
- 模块版本号
- 存储路径
4.批量操作
当我们安装部署项目的时候,如果逐个安装模块会非常费时费力,这个时候可以进行批量模块的安装,专业的python项目会在版本发布的时候进行依赖的输出,通过free
指令将项目种得所有外部模块的依赖进行打包输出到requirements.txt
文件中,该文件中包含项目中所有的外部依赖模块包括版本信息。
(1)模块的批量打包,安装和卸载
- 批量打包
使用pip管理工具free指令生成环境中安装的所有包的名字以及和他对应的版本号,并输出到requirements.txt中
pip3 free > ./requirements.txt
- 批量安装
pip3 install -r ./requirements.txt
- 批量卸载
pip3 uninstall -r ./requirements.txt
wheel和第三方模块的关系
参考文章