0 前言

python 虚拟环境的重要性已经无需多言了, 目前所有支持 python 虚拟环境的工具中最好用的应该就是 conda 了, 最重要的一点是可以一键创建不同版本的 python 环境以适应不同的需求.

Anaconda 比较臃肿, 本文使用无 GUI 的 miniconda.

环境:

  • win10
  • miniconda3-py11-23.5.2-0

1 安装

安装前需要确认一下系统及用户的环境变量中不要存在中文, 在 CMD 中直接执行 path 或者 git-bash 中执行 echo $PATH 进行确认, 这个问题当时被折磨疯了, 还给 conda 项目提了 issue.

最新版下载地址

选好路径直接下一步即可, 没有需要注意的自定义配置项

2 配置

2.1 环境变量

在用户环境变量 PATH 添加如下项, 我的安装路径是 D:\miniconda, 按实际情况修改

D:\software\miniconda
D:\software\miniconda\Scripts
D:\software\miniconda\Library\bin

添加完后重启系统, 让系统重新读取一下环境变量

image-20230807100025219

2.2 conda 配置

参考链接

miniconda 默认没有 .condarc 配置文件, 需要生成一下

conda config --set show_channel_urls yes

.condarc 会生成到用户目录下

$ cat .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
  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:
  - D:\software\python\envs
# pkg 存放路径
pkgs_dirs:
  - D:\software\python\pkgs

上述配置文件中主要配置了三项: conda 的清华国内源, 虚拟环境和 pkg 的存储路径

如不配置创建虚拟环境时可能会生成到用户目录下, 导致系统盘臃肿, 建议新建一个目录专门存放

2.3 pip 配置

系统中直接安装的 python, 其 pip 的配置文件一般存放在用户目录的 .pip/pip.ini, 使用 conda 创建的虚拟环境的 pip 则不同, 可以使用如下命令查看, 这个问题当时也折磨了我很久

$ pip -v config list
For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\lvbibir\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\lvbibir\AppData\Roaming\pip\pip.ini'
For variant 'site', will try loading 'D:\software\miniconda\pip.ini'

这里我们使用用户目录存放配置文件, 默认也是没有的

$ cat pip/pip.ini
[global]
timeout = 6000
index-url = http://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
proxy=http://127.0.0.1:7890

配置 pip 使用国内的清华源, 最后一条 proxy 可以不写, 这个问题是因为我常开代理, pip 默认用 https 访问系统代理, 导致 pip 报错.

2.4 管理虚拟环境

上述步骤做完后就可以正式使用 conda 创建虚拟环境了

用管理员打开 powershell 使用如下命令初始化 conda

conda init powershell
conda init cmd
conda init bash

之后重新打开终端, 创建你的虚拟环境, -n 表示虚拟环境的名字, 不指定 python 版本默认最新

conda create -n py37 python=3.7

激活虚拟环境

conda activate py37

退出虚拟环境

conda deactivate

查看虚拟环境列表

conda env list

删除虚拟环境

conda env remove -n py37 --all

3 其他

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

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

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

以上