MistGPU博客

分享深度学习知识
提供在线GPU出租

conda创建虚拟环境

Deep Mist Tech's Avatar 2021-02-03

  1. 1. 前言
  2. 2. 创建虚拟环境
  3. 3. 激活环境
  4. 4. 安装其他的包
  5. 5. 在Jupyter环境中使用虚拟环境
  6. 6. 在PyCharm中使用conda创建的环境
  7. 7. 降级cuda版本
  8. 8. 例:安装旧版本PyTorch
  9. 9. 例:安装旧版本TensorFlow
  10. 10. 常见问题
    1. 10.1. 找不到conda: command not found
    2. 10.2. 环境冲突(Found Conflicts)
    3. 10.3. 使用自定义源时404或403报错
  11. 11. 降级默认环境的cuda(不推荐)

前言

本教程中使用的mamba命令在cuda11.6及更新版镜像中可用,旧版镜像请手动替换为conda

mambaconda的C++实现,速度更快。常用语法与conda并无区别

创建虚拟环境

在终端中输入mamba create -n 环境名 -y即可,环境名可任取。

推荐在创建虚拟环境是顺带指定需要的python版本,

mamba create -n 环境名 python=3.8 -y

之后等待下载即可,下载完成时会有下图提示:

激活环境

创建完成后的环境需要激活才可生效,使用mamba activate 环境名即可。激活成功后在终端提示符上边会出现(环境名)的提示。
同时可以用以下命令检查python版本及路径(路径应当在miniconda目录中,而不是自带的/usr/local/bin)。

  • python -V
  • which python

安装其他的包

虚拟环境创建后不会继承默认环境里的包,意味着程序所需的包都需要在虚拟环境中重新安装

继续在终端中输入mamba install 包名 -y安装即可

为确保包之间的兼容性,推荐用mamba而不是pip来安装

在Jupyter环境中使用虚拟环境

  1. 使用mamba activate 环境名激活环境
  2. 在虚拟环境内输入: mamba install ipykernel ipython_genutils -y
  3. 执行 python -m ipykernel install --user --name 虚拟环境名 --display-name "显示名称"

此命令中--name后的名称要和之前的环境名一致,--display-name后的名称可任取。

  1. 刷新Jupyter网页,之后点击左上角蓝色+号新建启动器即可看到虚拟环境了。

已有的ipynb文件可以点击右上角或菜单栏-内核-更改内核修改。

在PyCharm中使用conda创建的环境

PyCharm具体配置教程可参考http://blog.mistgpu.com/2021/02/01/PyCharm连接教程/#添加SSH解释器)

  1. 使用mamba activate 环境名激活环境
  2. 在虚拟环境内输入: which python,复制返回的路径。
  1. 将返回的路径填入SSH解释器中在解释器一栏(下图蓝框)

降级cuda版本

在虚拟环境中可以通过安装不同版本的cudatoolkit来切换环境内的cuda版本。

注:RTX30系、A5000、A6000、A100等安培架构机型不支持降级到cuda11以下。

通过mamba search cudatoolkit可以看到可安装的版本。使用mamba install cudatoolkit=版本号 -y即可安装。

如果需要安装PyTorch或TensorFlow可跟随后面的教程一并安装,不需要现在装

虚拟环境内安装的cudatoolkit的版本就对应了cuda的版本,激活环境后输入mamba list确认此包已安装即可使用。

  • 使用nvidia-smi命令查询的cuda版本为驱动最高支持的cuda版本,不代表环境的cuda版本。
  • 使用nvcc -V命令查询到的cuda版本为默认pip环境的cuda版本,不是虚拟环境内的版本。

例:安装旧版本PyTorch

PyTorch官方网站找到对应PyTorch版本-Linux-conda部分的命令,并选择所需CUDA版本。

教程以安装PyTorch11.1, cuda=11.3为例:

激活环境后 (可选, 将命令开头的conda替换成mamba) 粘贴命令执行即可。

如果不需要torchvisiontorchaudio可以从命令中去掉。

此步骤需要下载的包比较大,请耐心等待。

安装完成后可确认PyTorch版本为1.11.0,GPU可用,cuda版本为11.3,cudnn版本为8.2.0

例:安装旧版本TensorFlow

TensorFlow官网确认需要安装的版本所需的cuDNNCUDA版本

教程以安装tensorflow=2.6.0为例:

激活环境后执行 mamba install -c conda-forge cudatoolkit={CUDA版本} cudnn={cuDNN版本} -y

粘贴执行下面两条命令

1
2
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

通过pip安装TensorFlow

pip install --upgrade pip

pip install tensorflow=={tf版本}

安装完成后可确认TensorFlow版本为2.6.0,GPU可用

常见问题

找不到conda: command not found

在终端中手动执行 export PATH=$PATH:/mistgpu/miniconda/bin,之后执行conda init --all后重启终端

环境冲突(Found Conflicts)

遇到冲突时一般会有类似下图的提示,若环境内装了很多包的话会卡在红框处。

此时可以Ctrl-c直接取消,也可在等待完成后查看具体哪些包直接有冲突。

解决方案包括但不限于:

  • 重新创建虚拟环境,并将所有要用到的包放在一条命令内安装
  • 放宽各个包版本要求

使用自定义源时404或403报错

为了加快conda的下载速度,我们在环境中修改了默认镜像源。这可能导致使用其他自定义源时报错。

您可以在终端中使用rm ~/.condarc命令删除自定义配置后重试。

删除.condarc后将使用默认源下载包,速度会比使用镜像更慢。

降级默认环境的cuda(不推荐)

一般情况下不需要使用,如果虚拟环境里降级有问题必须降默认环境的cuda才考虑

搞砸了的话需要重新创建服务器

nvidia官网并选择对应CUDA版本

教程以cuda 11.3.1为例,按下图所示依次选择Linux - x86_64 - Ubuntu - 1804 - runfile(local)

粘贴到服务器终端中执行

若下载速度慢,可以在自己电脑中下载后上传到机器中

阅读完EULA后根据提示输入accept后回车

根据提示把Driver去掉(上下键移动高亮到此处后按空格)后,移动到Install回车

下一个提示也回车,之后耐心等待退出即可

安装完成后会提示修改环境变量,需要添加以下两行到~/.zshrc末尾

1
2
export PATH=$PATH:{$PATH}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:{$LD_LIBRARY_PATH}

推荐使用nano, nano ~/.zshrc,编辑后按ctrl-xy回车

完成后可输入nvcc -V确认版本

之后还需要在默认环境中卸载原来的PyTorch/Tensorflow并安装新的版本

本文最后更新于 天前,文中所描述的信息可能已发生改变