Conda 的 yml 文件 Conda/PIP 国内镜像源的添加
此文介绍:
- Conda 的 yml 文件作用
- yml 文件中 Conda 国内镜像源的添加
- yml 文件中 PIP 国内镜像源的添加
- Conda YML 中直接导入pip的requrirements.txt文件
- Conda YML 中包含 wheel
文章目录
1 介绍
Conda 环境是独立的容器,因此内部的包及其版本不会影响环境外部的包。 创建一个虚拟环境可以帮助您通过将包和依赖项与其他代码隔离开来玩转包和依赖项。
我们可以使用 yml 手动创建环境或从现有环境中导出。这里简单地举几个例子:
name: env-name
channels:
- conda-forge
- defaults
dependencies:
- python=3.7
- codecov
yml 文件包含一下几个模块:
name
:环境名称dependencies
:依赖项,例如您希望在创建环境时预安装的库。channels
:频道(可选),参考频道下载包。 conda-forge 上的软件包可能比默认频道上的软件包更新。
我们可以通过
conda env create -f environment.yml
来新建虚拟环境。
另外,我们在MLOps中也用到conda的yaml文件,比如MLFlow的使用。这里也举一个例子:
channels:
- conda-forge
dependencies:
- python=3.8.2
- pip
- pip:
- mlflow==1.25.1
- torchvision>=0.9.1
- torch>=1.9.0
- pytorch-lightning==1.6.1
2 问题
这里需要介绍以及解决的问题在于,由于大陆地区网络,我们如果直接运行上面的yml文件,很可能会遇到超时的情况。尤其是pip
。以前我们把所有依赖都放在requirements.txt
文件中,直接通过pip install requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
来通过国内的镜像源来下载依赖。那么,在这个conda的yml中对应如何操作呢?
3 yml 文件中 Conda 国内镜像源的添加
下面是一个例子:
name: hyperparam_example
channels:
- conda-forge
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
dependencies:
- python=3.9
- pip
- numpy=1.22.2
- click
- pandas=1.4.1
- scipy
- scikit-learn=1.0.2
- tensorflow=2.6.0
- matplotlib=3.5.1
- keras=2.6.0
- mlflow=1.24.0
- hyperopt
我自己试下来的经验是,在channels
下面还是需要带着conda-forge
的,于此同时在下面添加国内的镜像源。
4 yml 文件中 PIP 国内镜像源的添加
下面是一个例子:
channels:
- conda-forge
dependencies:
- python=3.8.2
- pip
- pip:
- mlflow==1.25.1
- torchvision>=0.9.1
- torch>=1.9.0
- pytorch-lightning==1.6.1
- -i https://pypi.tuna.tsinghua.edu.cn/simple
注意上面最后一行。
5 Conda YML 中直接导入pip的requrirements.txt文件
下面是一个例子:
name: test-env
dependencies:
- python>=3.5
- anaconda
- pip
- pip:
- -r file:requirements.txt
6 Conda YML 中包含 wheel
我也尝试了在目录中添加wheel,但好像使用整个 URL 时出现此错误:
HTTP error 404 while getting http://www.lfd.uci.edu/~gohlke/pythonlibs/f9r7rmd8/opencv_python-3.1.0-cp35-none-win_amd64.whl
我们可以下载了wheel并将其保存到与 yml 文件相同的目录中,比如:
name: test-env
dependencies:
- python>=3.5
- anaconda
- pip
- pip:
- opencv_python-3.1.0-cp35-none-win_amd64.whl