0 前言

之前写过一篇 windows 安装 miniconda 的文章, 后面在接触了 wsl 后发现用起来要比在原生 windows 上舒服很多, 毕竟我写 python 多是为了在 linux 服务器上跑, 用 wsl 会更顺滑一些, 虚拟环境同样选择更轻量的 miniconda

1 安装

下载并安装, 一路 yes 即可

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh

2 配置

修改 conda 配置文件

cat > ${HOME}/.condarc <<- 'EOF'
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
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
# 不自动激活 base 环境
auto_activate_base: false
# 虚拟环境存放路径
envs_dirs:
  - /home/lvbibir/miniconda3/envs
# pkg 存放路径
pkgs_dirs:
  - /home/lvbibir/miniconda3/pkgs
EOF

为了不搞坏 conda 的默认 base 环境, 我们创建一个虚拟环境, 每次默认进这个虚拟环境

conda create -n py37 python=3.7

cat >> ${HOME}/.bash_profile <<- 'EOF'
conda deactivate
conda activate py37
EOF

退出重进后发现已经默认激活 py37 了

最后我们修改一下 pip 的配置, 添加清华源

mkdir ${HOME}/.pip
cat > ${HOME}/.pip/pip.conf <<- 'EOF'
[global]
timeout = 6000
index-url = http://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF

pip config list

测试一下 pip

pip install paramiko

3 虚拟环境

创建虚拟环境

# 安装一个虚拟环境
conda create -n py37 python=3.7
# 从现有环境复制一个虚拟环境
conda create -n py37-temp --clone py37

激活虚拟环境

conda activate py37

退出虚拟环境

conda deactivate

查看虚拟环境列表, 带有 * 的行就是当前所处的虚拟环境

conda env list

删除虚拟环境,

conda env remove -n py37

4 其他

conda 最为人诟病的点应该是包管理跟 pip 可能会产生一些冲突, conda 官方给出的最佳方案是

  • 全程使用 conda install 来安装模块, 实在不行再用 pip
  • 使用 conda 创建完虚拟环境后, 一直用 pip 来管理模块
    • pip 应使用 –upgrade-strategy only-if-needed 参数运行, 以防止通过 conda 安装的软件包进行不必要的升级. 这是运行 pip 时的默认设置, 不应更改
    • 不要将 pip 与 –user 参数一起使用,避免所有用户安装

总结一下就是不要来回地用 pip 和 conda, 专一一点 (笑

以上