当前位置:首页>python>如何用 Conda 管理 Python 的第三方库?

如何用 Conda 管理 Python 的第三方库?

  • 2026-10-10 16:38:52
如何用 Conda 管理 Python 的第三方库?
关注+星标,每天学习Python新技能

来源:网络

很多时候,我们使用pip安装第三方库的时候,总是会出现各种各样的问题。比如安装PyTorch GPU 版,经常会遇到显卡驱动不兼容、CUDA 版本不对等各种报错,极其磨人。比如安装GDAL包时总是报错缺少 PROJ 和 GEOS等库。但是这些问题用conda install xxx 往往能完美解决。为什么呢?

1

conda 和 pip 装包时的区别

用两个例子来解释一下二者装包时的差异,立马就能让你明白,conda的优势。

  1. gdal 安装

当 pip install gdal 时,pip 做的事情是:

  • 下载 GDAL 的 Python 源代码包(或者一个很基础的预编译包),尝试在电脑上现场编译(Build)。

  • 但GDAL 是个地图库,它底层依赖大量的 C++ 库、PROJ 库、GEOS 库。

  • pip 找不到依赖,直接报错,甩给你一堆红字让你看不懂。你得自己去下载各种乱七八糟的安装包,配置环境变量,折腾一天都未必能好。

当 conda install gdal 时,conda 做的事情是:

  • 从仓库里下载一个已经打包好的压缩包。这个包里不仅包含了 GDAL 本身,还包含了它需要的所有底层依赖(C++库、PROJ等)。

  • conda 把这些底层库放在自己独立的目录里(...\Miniconda3\Library),不污染系统,也不依赖系统环境。

  1. PyTorch GPU 版

pip 安装:

  • 它只管装 Python 包。

  • 显卡驱动:你得自己装。

  • CUDA Toolkit(显卡计算工具包,好几 GB):你得自己去 NVIDIA 官网下载对应版本安装。

  • cuDNN(深度学习加速库):你得手动解压复制到系统文件夹。

  • 结果就是,只要版本号对不上(比如 PyTorch 要 CUDA 11.8,你装了 12.1),代码立马跑不起来。

Conda 安装:

  • 只需要一条命令:conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch(这里只是举例,具体安装指令需要到官网,根据你要安装的那个版本复制安装命令。)

  • conda 会自动帮你安装好 CUDA Toolkit 和 cuDNN!

  • 它把这些工具包都塞在 Conda 的环境文件夹里,完全不需要你碰系统显卡驱动。

2

什么时候用 pip,什么时候用 conda?

库的类型

推荐工具

例子

纯Python写的库

pip

requests, flask, django, scrapy(这些库没有底层 C++ 依赖,pip 秒装,版本也最新)

涉及底层 C/C++/Fortran 的库

conda

gdal, rasterio, netcdf4, tensorflow(这种涉及科学计算、二进制文件的,conda 装更快)

涉及显卡 GPU 的库

conda

pytorch, cudatoolkit(conda 自动解决显卡环境配置,pip 需要手动折腾)

3

Anaconda和Miniconda,装哪个呢?

我的建议是装 Miniconda,它体积小,只带Python和Conda,想装什么自己装,不占多余空间。而Anaconda非常大,自带了很多预装的包,可能有些你还用不到,非常占硬盘,而且每次启动都巨慢巨卡。

  1. 安装方式:直接到官网下载安装。

  1. 安装时有几个勾选项这里介绍一下:

  • Create shortcuts (创建快捷方式)

    建议:勾选。

    方便在开始菜单找到 “Anaconda Prompt (miniconda3)”,这是操作 conda 命令的地方。

  • Add Miniconda3 to my PATH environment variable

    建议:勾选!(如果有这个勾选框)

    虽然它会弹出一个红色警告说“Not recommended”(不推荐),但勾选它才能在 cmd 和 PowerShell 里直接用 conda 命令,否则每次都要去开始菜单找专用终端,太麻烦了。

    注意:如果你电脑里原本装了一个Python解释器(假设是3.12版的),这个勾选之后,PATH 里可能会有两个 Python,谁在上面谁就是老大。如果 Python 在上面,cmd 输入 python 就是 3.12;如果 Miniconda(假设自带的Python是3.13版的) 在上面,cmd 输入 python 就是 3.13。你可以装完后去系统变量里根据你的需求手动调整一下顺序。

  • Clear package cache

    建议:勾选。

    这会清理安装过程中的临时缓存文件,省空间。

  • Register Anaconda as my default Python

    这会让 Miniconda 成为你电脑的默认 Python,就跟你设置默认浏览器一个意思。

    建议:看情况,如果以后偏向于用conda就勾,用自己下载的Python解释器多就不够。

  1. 安装好后记得修改国内镜像源(Anaconda 默认服务器在国外,下载包很慢。)

  • 打开刚才安装好的 Anaconda Prompt。

  • 逐行输入以下命令(配置清华源):

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 --set show_channel_urls yes
  1. 安装成功后打开开始菜单,会发现它没有各种软件图标,和那些点点点就能操作的界面,只有两个黑框框(conda的专用终端),因为Miniconda 为了省空间默认不装。当然,需要的话自己装就是一条命令的事。例如,我们要装Jupyter Notebook。

conda install jupyter notebook

输入 y 确认,很快就能装好。装好后打开开始菜单可以看到jupyter notebook的软件图标,点击它启动,或者在Anaconda Prompt里输入 jupyter notebook 启动。

4

conda 环境管理指令大全

1. 创建环境

# 基本格式conda create -n 环境名 python=版本号# 常用示例conda create -n myproject python=3.12conda create -n pytorch_gpu python=3.10conda create -n gdal_test python=3.9

细节说明:

  • -n 是 name 的缩写,后面跟你起的环境名字(建议用英文,别用中文)。

  • python=3.12 指定 Python 版本,这个版本是独立于系统的,也就是说可以同时存在 Python 3.12、3.10、3.9 的多个环境互不干扰。

  • 创建过程中会问你 Proceed ([y]/n)?,输入 y 回车确认。

  • 可以在创建时就直接装包:conda create -n myenv python=3.12 numpy pandas

2. 查看所有环境

conda env list# 或者conda info --envs

注意:带 * 号的是当前激活的。每个环境其实就是一个文件夹,存在 ...\Miniconda3\envs\ 下面。删环境直接删文件夹也行(但不推荐,用命令删更干净)。

3. 激活环境

conda activate 环境名

激活后的变化:

(base) C:\Users\86155>          <-- 激活前,显示 base(默认环境)conda activate pytorch_gpu(pytorch_gpu) C:\Users\86155>   <-- 激活后,前面变成了环境名!
  1. 退出 / 关闭环境

# 退出当前环境,回到 baseconda deactivate

5. 删除环境

# 先退出要删除的环境!conda deactivate# 然后删除conda remove -n 环境名 --all# 示例conda remove -n gdal_test --all
  1. 在环境里装包

激活环境后,装包就只在那个环境里生效:

# 先激活conda activate pytorch_gpu# 用 conda 装(推荐重型库用这个)conda install numpy pandas# 用 pip 装(纯 Python 库用这个)pip install requests flask# 离开环境后,这些包就"消失"了(其实还在那个环境文件夹里)conda deactivate

注意:为什么能用pip装包呢?假如我系统上原本装了一个Python解释器,不会将包装进那个Python吗?

当你激活了一个 Conda 环境后,那个环境里的 pip 和 python 都是该环境自己的,跟你系统上原来装的 Python 没有任何关系。每个环境都是完全独立的,里面有各自的 Python 和 pip!

...\Miniconda3\envs\pytorch_gpu\          <-- 环境    ├── python.exe                        <-- 它自己的 Python    ├── Scripts/    │   ├── pip.exe                       <-- 它自己的 pip    │   └── ...    └── Lib/        └── site-packages/                <-- 包装在这里!

输入 conda activate xxx 激活环境时,Conda

它临时修改了你的 PATH 环境变量,把这个环境的路径提到了最前面,如下图所示:(where 命令会列出所有同名程序,排在第一位的就是系统实际调用的那个!)

所以当你输入 pip 时,系统使用的是第一个路径里的 pip.exe,不会走到你原来的 Python 那里去。

总结:激活了哪个环境,python 和 pip 就是那个环境的,包装在那个环境的 site-packages 里,跟你原来的 Python彻底无关。

7. 导出和复现环境

# 把当前环境的所有包信息导出为一个文件conda activate pytorch_gpuconda env export > environment.yml# 别人拿到这个文件,一键复现完全相同的环境conda env create -f environment.yml
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等

推荐阅读

10个内置在 Pandas 中却常被忽略的向量化操作

机器学习特征工程:缩放、编码、聚合、嵌入与自动化

Python数据库大揭秘:7款不为人知的宝藏工具

9个提升Python代码生产质量的第三方库

点击 阅读原文 了解更多

最新文章

随机文章