教程使用 MiniConda + UV 进行 Python 包的管理与下载。所有操作都在 Windows 环境下进行。
为什么用 conda 而不是 pip
pip 下载的科学计算库都是用 python 实现,这是 pip 的优点也是缺点,因为它只能下载 Python 文件。而 conda 可以自动下载具备二进制文件的 Python 包,二进制文件就是例如 C 及其编译文件等,因此使用具备二进制文件的 Python 包运行速度会更快,因此用 conda 安装具备二进制优化的库来说更合适,而 pip 或 uv 更适合普通库的安装。常见的科学计算 Python 包都有优化版本,例如 numpy,scipy 和 scikit-learn 等,这些包最好用 conda 安装。
MiniConda 下载与安装
首先需要下载 MiniConda,官方的资源库 MiniConda 官方资源库。这里头随便找个比较新的 MiniConda 的版本直接下载就好了,不用管它自带的 Python 版本,唯一需要注意的是安装过程有一个环节可以添加安装路径到 Path 环境中,把它点上即可。

之后就需要配置 Conda 源了,我这里用的是官方源,需要科学上网,至于为什么不用清华源,那自然是因为这清华源太不稳定了,时好时坏真的太搞心态了,不如直接用国外的官网源稳定。Conda 操作我就不赘述了,直接添加下方的官方源即可,注意顺序不能乱,如果添加顺序乱了 Conda 下载包的优先级就跟着一块乱了。
conda config --add channels https://repo.anaconda.com/pkgs/msys2/win-64
conda config --add channels https://repo.anaconda.com/pkgs/msys2/win-64/
conda config --add channels https://repo.anaconda.com/pkgs/r/win-64
conda config --add channels https://repo.anaconda.com/pkgs/r/win-64/
conda config --add channels https://repo.anaconda.com/pkgs/main/win-64
conda config --add channels https://repo.anaconda.com/pkgs/main/win-64/
conda config --add channels conda-forge
添加完所有官方源之后可以去 .condarc 文件看看是否配置成功。
不同系统下的 .condarc 目录如下:
- Linux:
${HOME}/.condarc - macOS:
${HOME}/.condarc - Windows:
C:\Users\<YourUserName>\.condarc
Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。
我的 .condarc 文件如下,如果嫌添加麻烦也可以直接用该源配置:
show_channel_urls: true
channels:
- conda-forge
- https://repo.anaconda.com/pkgs/main/win-64/
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/r/win-64/
- https://repo.anaconda.com/pkgs/r/win-64
- https://repo.anaconda.com/pkgs/msys2/win-64/
- https://repo.anaconda.com/pkgs/msys2/win-64
channel_priority: flexible
添加完还可以在终端运行以下命令看看是否添加成功。
conda config --get channels
我的运行结果如图所示,第二行为低优先级源,最后一行的 conda-forge 源为高优先级源,该源有专业社区人员维护,涵盖程序齐全且更新及时,Conda 下载包时按照从高到低的顺序访问下载的:

最后可以再添加一个命令用于下载 Python 包时使用的是哪个源。
conda config --set show_channel_urls yes
配置环境
1.(可选)安装 libmamba
libmamba 是一款加速 conda 下载包时解析复杂依赖图的程序,用 C 实现,解析包的依赖更快。一定要在 base 环境安装 libmamba 并将其设置为默认的解析器 。第一行指令是下载 libmamba,第二行指令是设置 libmamba 为默认包依赖解析器,这样不管是全局环境还是虚拟环境中,只要使用 Conda 命令下载包都会使用 libmamba 来求解包的依赖关系,下载速度大大提升。
conda install -n base -c conda-forge mamba libmamba libmambapy
conda config --set solver libmamba
2. 创建环境并指定 Python 精确版本
2.1 conda create 创建虚拟环境
conda create -n perf_env python=3.12.12 -c conda-forge -y
一定要指定 Python 版本,如果不指定的话就不会在新环境中安装 pip 命令,如果新环境没有 pip 命令,Conda 就会使用外面默认的 pip 进行管理,用外面默认的 pip 安装 Python 的话就会默认安装在 pip 路径而不是虚拟环境了,最恶心的是即使你后面补上了 pip,这个虚拟环境也会优先选择第一次匹配到的全局 pip 命令,还是会安装到其他地方,所以创建环境一定要选 Python 版本,如果忘记了没选也一定要先在新的虚拟环境里下载 pip 命令再安装 Python,这样才会使用虚拟环境里的 pip 命令。
2.2 conda env create 创建虚拟环境
除了使用 conda create 创建虚拟环境,Conda 还提供一种 yml 文件的方法一次性生成新环境与需要的基础库。为什么要用 yml 文件创建虚拟环境呢,因为利用 yml 文件可以一次性下载所有可能需要的工具,例如 pip, uv, ipython, jupyter 等插件。
conda env create -n env name -f your yml path
这里展示我的初始环境 yml 文件。
如果没有下载 libmamba,yml 文件可以是 UTF-8 编码的。
如果下载了 libmamba,yml 文件一定是 ANSI 编码的。
# init_env.yml
name: qwerQAQ
channels:
- conda-forge
- defaults
dependencies:
- python=3.12.12
# scientific computing pkg
- pandas>=2.0
- xarray>=2023.0
- dask>=2023.0
- matplotlib>=3.7
- seaborn>=0.12
- statsmodels>=0.14
# computing optimal pkg
- numpy>=2.0.0
- scipy>=1.14.0
- scikit-learn>=1.7.0
- scikit-optimize>=0.9
- optuna>=3.0
- mkl_fft>=1.0
- mkl_random>=1.0
- numba>=0.59
- llvmlite>=0.41
# development pkg
- jupyter>=1.0
- notebook>=7.0
- ipython>=8.0
- tqdm>=4.65
- rich>=13.0
- ipywidgets
- uv
- pip
3. uv pip 安装 pytorch 或 txt 文件中的包
如果你确定了你需要的包的版本或者包的依赖要求不高,那么可以使用 uv pip 下载,因为 uv 下载包速度比 pip 和 conda 更快。
uv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124
如果不确定包的版本或者包的依赖要求更高,为了避免下载新包就要重新下载之前很多个旧包的话,最好使用 conda 命令下载。
如果你的虚拟环境里没有 uv 的话,可以直接使用 pip 命令下载 uv。
pip install uv
我的建议是初始化时重要的包用 Conda 下载,剩下大部分情况都可以用 uv 下载。