Python 环境与包管理工具介绍
随着 Python 在数据科学、人工智能和自动化领域的广泛应用,其包管理与环境隔离机制也经历了深刻的演进。接下来,我们聊聊现代见过的Python 开发环境的构建逻辑。
第一个是pip: Python原生包管理器
在早期,Python 社区缺乏统一的包安装工具。直到 pip
的出现,才实现了通过命令行一键安装第三方库:
pip install package_name
2000 年代末,虽然 Matlab(商业软件) 和 R语言(统计专用) 在科学计算领域占据主导地位,但:Matlab 价格昂贵,不利于普及;R 语法相对小众,扩展性有限;Python 语法简洁、开源免费、社区活跃。
于是,开发者开始尝试用 Python 进行数据分析。然而,纯 Python 实现的数值计算性能较差,因此出现了用 C/Fortran 编写的底层数学库(如 BLAS、LAPACK),并通过 Python 封装调用,形成了如:
NumPy
:多维数组与线性代数SciPy
:科学计算函数库Pandas
:数据处理与分析
这些库极大提升了 Python 的计算效率,真正实现了“语法简洁 + 性能高效”的结合。
在早期(2013 年 wheel 格式出现前)存在严重问题:
- 安装含 C 扩展的包(如 NumPy)需本地编译;
- 用户必须手动配置编译器、数学库(如 MKL、OpenBLAS);
- 跨平台支持差,尤其在 Windows 上体验极差。
直到 wheel 二进制包格式(PEP 427)普及后,
pip
才能高效安装预编译包,显著改善用户体验。
第二个是conda:跨语言的包与环境管理器
为解决科学计算中复杂的依赖关系,Continuum Analytics 公司于 2012 年发布了 Anaconda Distribution,并引入了全新的包管理器conda
。
// 核心功能
# 安装包
conda install package_name
# 卸载包
conda uninstall package_name
# 创建独立环境
conda create -n myenv python=3.9
conda
的优势在于:
- 支持 跨语言(Python、R、Julia、C 等);
- 管理 非 Python 依赖(如编译器、CUDA、FFmpeg);
- 内置环境隔离机制;
- 提供跨平台二进制包(无需编译);
Anaconda 的默认仓库:defaults
Anaconda 公司维护了一个官方软件源(称为 channel),托管在 Package repository for anaconda | Anaconda.org 平台:
main
:主流 Python 包r
:R 语言相关包msys2
:Windows 上的类 Unix 工具链(用于兼容性)
第三个 miniconda
:轻量级 conda 发行版
Anaconda
包含大量预装工具(约 200+ 包),体积庞大(数 GB)。对于只需核心功能的用户,miniconda
应运而生。他的特点:仅包含 conda
、Python 和少量必要依赖;启动快,占用空间小(~100MB);可按需安装所需包。
第四个 conda-forge
:开源社区驱动的软件源
由于 conda
的官方仓库由公司维护,更新慢、包数量有限,社区于 2015 年发起了 conda-forge 项目。conda-forge是一个完全由开源社区维护的 conda channel,它托管在 conda-forge | Anaconda.org;优点在于包更新快、数量多、质量高。
如今,conda-forge
已成为 anaconda.org 上最大的 channel,并逐渐成为事实标准。
// 使用conda forge
conda install -c conda-forge package_name
conda create -n myenv -c conda-forge python=3.11
Anaconda指的是一个非常强大的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换
下载:
https://repo.anaconda.com/miniconda/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
安装Anaconda:
①:打开安装包,点击 Next
②:同意协议,点击 I Agree
③:选择同意哪些用户使用此软件,任意选择即可
④:修改安装路径,优先推荐除C盘外的其他盘,路径不要有特殊字符,不然后期创建虚拟环境可能会出现问题
⑤:增加环境变量到系统,勾选增加环境变量,点击安装
⑥:完成安装,点击 Next
⑦:完成安装后不需要勾选这两个选项
⑧:确认是否安装完成,通过PowerShell查看,显示除出版本号,说明安装成功
Conda虚拟环境介绍与管理
Python 应用经常需要使用一些包第三方包或者模块,有时需要依赖特定的包或者库的版本,所以不能有一个能适应所有 Python 应用的软件环境
很多时候不同的 Python 应用所依赖的版本是冲突的,满足了其中一个,另一个则无法运行,解决这一问题的方法是虚拟环境。
虚拟环境是一个包含了特定 Python 解析器以及一些软件包,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利
建议:如果使用anaconda进行多个项目开发,最好创建不同的虚拟环境,也就是为每个项目配置独立的虚拟环境,使得彼此之间不会受到任何干扰
Anaconda虚拟环境命令
//显示已存在虚拟环境
conda info --envs
//创建虚拟环境
conda create -n 虚拟环境名称 python=版本号
//删除虚拟环境
conda remove -n 虚拟环境名称 --all
//激活\进入虚拟环境
activate 虚拟环境名称
//退出虚拟环境
deactivate 虚拟环境名称
注意:
创建虚拟环境后,默认会在Anaconda安装目录的envs下,创建虚拟环境相关文件
创建的虚拟环境仅安装一些必须软件包,例如pip等。如果需要安装Anaconda所有库,需要使用如下命令:
conda create -n 虚拟环境名称 python=版本号 anaconda
在使用过程中可能会发生PowerShell无法激活虚拟环境问题,就是说在使用PowerShell激活虚拟环境时,发现激活无效,而在CMD中可以
解决方案:
- 检查是否是执行脚本的权限,或者直接开启权限,使用管理员权限下,执行命令:
Set-ExecutionPolicy RemoteSigned
,输入Y即可- 必须将Anaconda 写入环境变量。使用管理员权限下,执行命令:
conda init powershell
- Conda版本小于4.6,编写命令不加conda命令:
activate 环境名
Conda版本大于4.6使用:conda activate 环境名
修改完后,重启下powershell
PowerShell中显示虚拟环境名称:
在终端输入
conda config --set auto_activate_base false 不显示
在终端输入
conda config --set auto_activate_base true 显示
Conda软件包_模块管理
conda是一个软件的管理器,可以用来下载,删除Python的软件包(类似PIP)
安装:conda install 软件/模块
卸载:conda remove 软件/模块
查看:conda list
pip管理
安装:pip install 软件/模块
卸载:pip uninstall 软件/模块
查看:pip list
conda在安装包时会同时处理所有依赖关系,包括:Python解释器版本,C/C++库,CUDA等硬件,相关的依赖,其他编程语言的依赖。
conda使用严格的依赖解析器,可以预先检查所有依赖冲突;pip只管理Python包,不管理系统级别的依赖
数据源与路径设置
Anaconda配置文件:
Linux用户可以通过修改用户目录下的 .condarc 文件
Windows用户无法直接创建名为 .condarc 文件,可以先执行 conda config 命令,会生成该文件之后再修改.
清华大学开源软件镜像站 anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
在 .condarc文件中 修改为以下内容
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
要注意,环境中可能不止有一个.condarc文件,可以通过 conda info 命令查看
真正再去运用的时候,他的顺序是D盘的配置文件,然后是C盘的配置文件,所以说,即使在C盘中创建.condarc文件,也有可能不适用,主要走的是根目录下的配置文件,所以我们修改根目录的.condarc文件就行了.
在配置好文件后,可以通过 conda info 命令查看是否配置成功:
可以观察到,channel URLS中的内容修改为我们添加的内容,即配置文件成功.
另一种方法是以命令的方式配置数据源
命令方式配置conda数据源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
命令方式配置pip数据源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
设置虚拟环境目录:
上图中D盘的虚拟环境目录是主要的,下面两个C盘的是备用的,尽量不用系统盘的虚拟环境目录,使用如下命令设置虚拟环境目录:
envs_dirs:
- D:\miniconda3\envs
设置缓存软件目录:
我们可以通过使用如下命令配置缓存目录:
pkgs_dirs:
- D:\miniconda\pkgs