Python
近些年异军突起的一大原因就是它有着极其庞大三方库,只有你想不到的没有它做不到的,合理的利用已有的三方库能够大大增加你的工作效率。
今天就让我们系统性的了解如何在 Python
中实现模块依赖管理。
一、服务安装
1. 环境搭建
首先当然时从 Python
环境安装开始,下面提供两种下载方案:官网和镜像下载。
Python
官网如下,根据操作系统选择下载对应的版本,链接直达。
如果上述地址访问较慢,可尝试通过阿里镜像地址进行下载安装。
https://npm.taobao.org/mirrors/python/
下载后具体安装步骤比较简单,无脑下一步即可这里就不过多介绍,完成后默认安装路径在:C:\Users\<username>\AppData\Local\Programs\Python
下。
二、类库管理
安装完 Python
环境后即自带 pip
工具,通过其即可实现依赖管理。
1. 模块查看
通过 list
查看已安装的工具库,使用 show
则可查看指定工具库的信息。
# 查看所有依赖
pip list
# 查看指定依赖
pip show <module>
2. 安装卸载
通过 pip install
与工具库名称即可实现类库下载,之后即可在代码文件中导入。
pip install <module>
默认安装的路径为 Python
安装目录 lib\site-packages
下,当然也可通过 target
指定依赖下载目录。
如果自定义了安装路径,则在工程中需要配置 PYTHONPATH
环境变量指定对应目录。
pip install <module> --target=/path/to/directory
在 pip
安装工具库时,默认执行步骤会先下载对应的安装包后并解压,先写入缓存中后安装到环境。
因此对于服务内存有着一定的要求,否则 install
命令将会提示 MemoryError
内存异常。针对此类场景在安装时通过 --no-cache-dir
禁用缓存即可,语法如下:
pip install --no-cache-dir <module>
卸载工具库与下载类似,通过 uninstall
命令即可,语法如下:
pip uninstall <module>
(1) 批量下载
在一个工程中往往不止涉及到一个类库,如果手动的单个逐个下载显然效率过低,因此在 Python
可以通过文件配置达到类似前端工程 package.json
的效果。
新建记事本文件 requirements.txt
文件,在文件中添加所要下载类库并指定其版本号。
Django==3.2.18
boto3==1.26.94
requests==2.28.2
通过 -r
指定从文件中读取需下载的类库信息,运行命令即可实现批量下载上述文件中的所有类库。
pip install -r requirements.txt
3. 镜像依赖
众所周知,国内在下载安装国外一些工具和环境时经常抽风,所以镜像访问必不可少。
通过镜像下载配置十分简单,在下载时通过 -i
指定镜像地址即可,具体命令如下:
pip install -i <mirror> <module>
如通过清华镜像下载 numpy
库,命令如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
这里分享几个资源比较全的国内镜像网站。
# 阿里云
http://mirrors.aliyun.com/pypi/simple/
# 清华
https://pypi.tuna.tsinghua.edu.cn/simple
# 中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
三、工程管理
1. 依赖文件
如果在克隆别人分享的项目时,你会发现在项目根目录下通常包含 requirements.txt
,文件中内容示例如下。
简而言之,此文件即定义了项目中所依赖的包工具以及版本信息,他人若需启动项目则可一键下载。
numpy==2.0.2
packaging==25.0
protobuf==3.20.3
那又该如何生成对应的依赖信息呢,在 pip
中则提供了 freeze
命令可按上述格式列出当前系统中已下载的依赖。
pip freeze
你也可以通过下述方式直接导出到 requirements.txt
依赖文件。
pip freeze > requirements.txt
2. 版本信息
在 requirements.txt
或 pip
安装依赖时除了上述的 ==
固定版本外提供了更灵活的定义。
通过使用的 ~=
可约束性最小版本,其作用为指定了最低版本要求。
例如下述安装 2.4.0
或更高版本,但不跨越主次版本号的范围,即 <3.0.0
。
pydantic ~= 2.4.0
其它常用的版本配置符号参考下表:
方法 | 作用 |
---|---|
== | 只能安装指定版本。 |
>= | 最小版本要求。 |
<= | 最大版本要求。 |
!= | 排除某个版本。 |
~= | 安装兼容版本。 |
3. 依赖安装
有了 requirements.txt
文件之后依赖安装就十分简单了,通过 -r
命令指定文件即可。
具体语法如下:
pip install -r requirements.txt