1. 为什么选择 Miniconda 来管理你的 PyTorch 环境?
如果你刚开始接触深度学习,或者刚从 Windows 或 macOS 转到 Linux 做开发,可能会被环境配置搞得头大。我刚开始那会儿,最怕的就是“版本冲突”——辛辛苦苦装好一个库,结果另一个项目跑不起来了,或者系统自带的 Python 被搞乱。这种痛,相信很多朋友都经历过。
这时候,Miniconda 就是你的救星。你可以把它理解为一个“环境隔离大师”。它不像 Anaconda 那样预装了成百上千个你可能用不上的科学计算包,它非常轻量,只包含最核心的 Conda 包管理器和 Python。这带来的好处是安装快、占用空间小,而且非常干净。你完全可以根据每个项目的需要,创建一个个独立的“小房间”(虚拟环境),每个房间里安装特定版本的 Python、PyTorch 以及其他依赖库。项目A用 PyTorch 1.8 和 Python 3.7,项目B用 PyTorch 2.0 和 Python 3.10?没问题,两个环境互不干扰,切换起来也就一条命令的事。
那为什么非得在 Linux 下用呢?对于深度学习来说,Linux 几乎是生产环境的标准选择。它更稳定,对 GPU 等硬件资源的调度更高效,而且很多底层的加速库在 Linux 上支持得最好。直接在 Linux 系统 Python 里装东西,一旦玩脱了,影响的是整个系统。而用 Miniconda 创建的环境,都在你的用户目录下,删掉环境文件夹就干干净净,系统安然无恙。所以,这套“Linux + Miniconda + 虚拟环境”的组合拳,是开始深度学习之旅最稳妥、最专业的第一步。
2. 手把手安装 Miniconda:从下载到验证
好了,道理讲完,咱们直接开干。整个过程就像搭积木,一步一步来,非常清晰。
2.1 准备工作与下载安装脚本
首先,我们打开终端。在 Linux 下,几乎所有操作都离不开这个黑乎乎的窗口,别怕,它很强大。我习惯为这类自己安装的软件创建一个专门的目录,比如就叫 software 或者 tools,这样好管理。这里我们按原始文章的来,创建一个 miniconda 目录并进入:
mkdir -p ~/miniconda
cd ~/miniconda
接下来是下载安装脚本。这里就是第一个提速技巧了:直接从国内镜像站下载,速度会快很多倍。清华大学开源软件镜像站是我们国内开发者的好朋友。我们使用 wget 命令来下载最新的 Miniconda 安装脚本(针对 x86_64 架构的 Linux 系统):
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
这条命令执行后,你会看到一个进度条飞速前进(如果网络正常的话)。下载下来的文件是一个以 .sh 结尾的 Shell 脚本,大概几百MB。如果因为网络问题 wget 失败了,你也可以直接打开浏览器,访问 https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/,手动找到 Miniconda3-latest-Linux-x86_64.sh 这个文件下载,然后通过图形界面或 scp 命令放到这个目录里。
2.2 执行安装与关键步骤选择
下载完成后,我们赋予这个脚本执行权限,然后运行它:
bash Miniconda3-latest-Linux-x86_64.sh
安装程序会启动。首先会出现一堆许可条款,一直按回车往下翻。如果你不想看,直接按 Ctrl+C 就可以中断阅读,然后它会问你是否接受许可协议,输入 yes 回车。
接下来是关键步骤:选择安装路径。安装程序会显示一个默认路径,通常是 /home/你的用户名/miniconda3。我强烈建议你直接回车使用这个默认路径。这样最省心,所有东西都会规规矩矩地装在你的家目录下,不会去动系统目录。如果你有特殊需求,比如要安装到别的硬盘,也可以输入自定义路径。
然后,安装程序会问你是否要初始化 Conda。它会提示“Do you wish the installer to initialize Miniconda3 by running conda init?”,这里一定要输入 yes 回车。这个操作会在你的 Shell 配置文件(如 ~/.bashrc)末尾添加几行,目的是让你每次打开终端,都能方便地使用 conda 命令。如果不初始化,每次都得手动激活,非常麻烦。
安装完成后,它会提示你关闭并重新打开终端,或者执行 source ~/.bashrc 来使配置生效。我们选择更简单的方式,直接执行:
source ~/.bashrc
现在,你的命令行提示符前面,应该会出现一个 (base) 字样。这说明你已经进入了 Miniconda 的“基础环境”。恭喜,Miniconda 安装成功!你可以通过以下命令验证一下:
conda --version
这会显示 Conda 的版本号。再试试:
python --version
这会显示当前环境(base环境)下的 Python 版本,应该是 Miniconda 自带的较新版本。
3. 配置清华镜像源:让下载速度飞起来
安装好 Conda 只是第一步,如果不做任何配置,你会发现用 conda install 安装包时,速度慢如蜗牛,甚至经常超时失败。因为默认的软件源服务器在国外。所以,配置国内镜像源是必不可少的一步,能让你后续的所有操作体验提升好几个档次。
3.1 理解 Conda 的配置文件
Conda 的配置信息存储在一个叫 .condarc 的文件里,这个文件通常在你的用户家目录下(~/.condarc)。如果还没有,我们可以通过命令创建它。配置镜像源,本质上就是修改这个文件,告诉 Conda:“以后下载东西,别去国外那个慢悠悠的仓库了,去清华的镜像站,又快又稳。”
原始文章给出了两种方法:直接编辑配置文件,或者用命令行添加。我两种都讲讲,你可以按喜好选择。
方法一:命令行添加(推荐给新手)
这种方法一条条命令执行,清晰明了。我们依次添加清华镜像的 main、free(旧版,现已合并)和 conda-forge 频道。conda-forge 是一个社区维护的、包数量非常丰富的频道,很多前沿的包都在这里。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
设置显示安装包的来源频道,这样安装时你能清楚地看到包是从哪个镜像站下载的:
conda config --set show_channel_urls yes
方法二:直接编辑配置文件(适合喜欢掌控一切的玩家)
用文本编辑器(如 vim 或 nano)直接打开或创建 ~/.condarc 文件:
vim ~/.condarc
然后将以下内容复制进去。注意,channels 的顺序很重要,Conda 会按从上到下的优先级搜索包。我们把镜像源放在最上面,defaults(官方源)放在最后作为后备。
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- defaults
show_channel_urls: true
ssl_verify: true # 确保SSL验证是开启的,安全第一
保存退出后,配置就生效了。
3.2 别忘了配置 pip 的镜像源
这里有一个非常重要的细节!Conda 环境里,我们不仅会用 conda install 安装包,有时候也会用到 pip install(尤其是一些仅通过 PyPI 发布的包)。Conda 的镜像源只对 conda 命令生效,pip 有自己的索引源,默认也是国外的。
所以我们必须也给 pip 换上国内镜像。在终端里执行:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
这条命令会为当前用户全局设置 pip 源。如果你只想为某个虚拟环境设置,可以先激活那个环境,再执行这条命令。
3.3 关闭自动激活 base 环境
你可能已经注意到,每次打开终端,都会自动进入 (base) 环境。对于新手,这能提醒你在用 Conda。但时间长了,你可能会觉得有点烦,因为你可能更希望默认是系统环境,只在需要时手动激活 Conda 环境。
关闭这个自动激活功能很简单:
conda config --set auto_activate_base false
执行后,关闭当前终端再重新打开,那个 (base) 前缀就消失了。当你需要管理环境时,随时可以手动输入 conda activate base 回来。这个设置让终端变得更干净,也更符合“按需使用”的原则。
4. 玩转 Conda 虚拟环境:为 PyTorch 打造专属空间
环境配置好了,现在我们来学习 Conda 的核心技能——管理虚拟环境。这是保证项目依赖纯净的关键。
4.1 环境的创建、查看与切换
首先,看看我们现在有哪些环境:
conda env list
# 或者
conda info --envs
你会看到一个列表,当前只有一个 base 环境,路径指向你的 Miniconda 安装目录。
现在,假设我们要开始一个全新的 PyTorch 项目,需要 Python 3.9。我们来创建一个名为 pytorch_project 的环境:
conda create --name pytorch_project python=3.9
执行后,Conda 会解析依赖,列出将要安装的包,问你是否继续,输入 y 回车。稍等片刻,一个纯净的、只安装了 Python 3.9 和少量核心依赖的“空房间”就建好了。
要进入这个房间工作,使用 activate 命令:
conda activate pytorch_project
你会发现命令行提示符变成了 (pytorch_project),这表示你已经成功切换。在这个环境下安装的任何包,都不会影响 base 环境或其他环境。
想退出当前环境,回到基础状态?用:
conda deactivate
4.2 环境的复制、删除与包管理
有时候,你需要基于一个现有环境复制一个新环境,比如做实验怕搞坏原环境:
conda create --name pytorch_project_copy --clone pytorch_project
如果一个环境不再需要了,可以彻底删除(谨慎操作!):
conda remove --name pytorch_project_copy --all
在环境里,安装、更新、删除包的命令和 base 环境里一样:
# 安装 numpy
conda install numpy
# 安装特定版本的包
conda install scipy=1.9.0
# 更新一个包
conda update numpy
# 删除一个包
conda remove scipy
# 查看已安装的包
conda list
记住一个黄金法则:一个项目,一个独立的环境。这样,当你半年后重新打开这个项目时,依然能轻松地 conda activate your_project_env 并完美运行,而不用担心依赖冲突。
5. 安装 PyTorch:选择最适合你的版本
终于来到重头戏——安装 PyTorch。PyTorch 的安装选项比较多,主要是因为它对 GPU 的支持需要搭配特定版本的 CUDA 驱动和工具包。别担心,我们一步步来。
5.1 访问官网获取安装命令
最权威、最不容易出错的方法是访问 PyTorch 官网的 “Get Started” 页面。在浏览器中打开 https://pytorch.org/get-started/locally/。
你会看到一个类似下图的选择器:
- PyTorch Build: 选择稳定版(Stable)。
- Your OS: 选择 Linux。
- Package: 选择 Conda。这就是我们为什么要先装 Miniconda 的原因。
- Language: 选择 Python。
- Compute Platform: 这是关键!
- 如果你没有 NVIDIA GPU,或者暂时不想用 GPU:请选择 CPU。这样安装的 PyTorch 只能使用 CPU 进行计算,适合学习或运行小模型。
- 如果你有 NVIDIA GPU,并且想利用 GPU 加速:根据你系统上安装的 CUDA 版本选择。你可以通过在终端输入
nvidia-smi命令来查看驱动版本和推荐的 CUDA 版本。如果不确定,或者 CUDA 版本较老(比如10.2),可以选择 CUDA 11.8 或 CUDA 12.1,这些是当前比较主流且兼容性好的版本。安装 Conda 版本的 PyTorch 时,它会自动帮你安装对应版本的 CUDA 工具包和 cuDNN 库到当前虚拟环境中,不会影响系统全局的 CUDA,非常方便。
选择好之后,网站下方会生成一条 conda install 命令。例如,选择 Stable、Linux、Conda、Python、CUDA 11.8 后,得到的命令可能是:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
5.2 执行安装与验证
重要提示:在运行这条命令前,请确保你已经激活了之前为 PyTorch 项目创建的虚拟环境(比如 pytorch_project)!
conda activate pytorch_project
然后,将官网生成的那条命令复制到终端中执行。由于我们已经配置了清华镜像,并且将 conda-forge 等频道加入了配置,Conda 会优先从国内镜像站搜索 pytorch, torchvision 等包,速度会非常快。但注意,命令中的 -c pytorch -c nvidia 是指定了额外的频道,对于一些包,可能还是会从官方频道拉取,但大部分依赖应该都能从镜像站解决。
安装过程需要一点时间,因为它要下载 PyTorch 核心库、视觉库 torchvision、音频库 torchaudio 以及对应的 CUDA 工具包,文件比较大。请耐心等待。
安装完成后,我们来验证一下。在激活的虚拟环境中,启动 Python 解释器:
python
然后输入以下 Python 代码进行验证:
import torch
print(torch.__version__) # 打印 PyTorch 版本
print(torch.cuda.is_available()) # 检查 GPU 是否可用(如果安装了CUDA版本)
如果第一行成功输出版本号(如 2.1.0),说明 PyTorch 安装成功。如果第二行输出 True,恭喜你,GPU 版本的 PyTorch 也配置成功,可以尽情享用显卡加速了!如果输出 False,则说明当前安装的是 CPU 版本,或者 GPU 驱动/CUDA 环境有问题。
6. 避坑指南与实用技巧
踩过不少坑之后,我总结了一些经验,能帮你节省大量折腾的时间。
关于镜像源失效:镜像站的地址偶尔可能会调整。如果你在使用 conda install 时遇到“找不到包”或下载异常慢的问题,可以再次访问清华大学镜像站的主页 (https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/),查看最新的 Conda 镜像使用帮助,确认频道地址是否有更新。
环境文件分享:当你和团队协作时,如何保证大家的开发环境一致?Conda 可以导出环境配置文件:
conda env export > environment.yaml
这个 environment.yaml 文件精确记录了所有包的名称和版本。队友拿到后,只需执行:
conda env create -f environment.yaml
就能一键复现完全相同的环境,避免了“在我机器上是好的”这种经典问题。
空间清理:Conda 用久了,会缓存很多下载过的包文件,占用不少磁盘空间。定期清理是个好习惯:
conda clean -a
这个命令会删除索引缓存、未使用的包和tar包。
安装特定版本的包:有时候你需要安装非常特定版本的包组合。除了在 conda install 中指定,还可以在创建环境时直接指定一个包含多个包及其版本的环境文件,或者使用 conda search 命令来查找某个包在镜像源中有哪些可用版本。
最后,我想说,这套“Miniconda + 清华镜像 + 虚拟环境”的组合,是我在 Linux 下进行 Python 和 AI 开发的基石。它把复杂的依赖管理和环境隔离问题变得异常简单。刚开始花半小时把它 setup 好,后续能为你省下无数个“为什么跑不起来”的深夜。现在,你的 PyTorch 开发环境已经就绪,接下来,就是去构建那些激动人心的模型了。如果在实践中又遇到新的问题,别忘了 Conda 强大的社区和文档,它们是你最好的后盾。
391



被折叠的 条评论
为什么被折叠?



