参考链接:
conda install
与pip install
的区别 https://www.cnblogs.com/yibeimingyue/p/14660246.html
注意:使用官方给出的部署文件进行环境的创建时,特别要注意
cuda
版本是否和服务器的版本(显卡驱动版本)一致(这里的一致是指:显卡驱动以及CUDA
版本不能低于需要安装的CUDA
版本)!否则即使安装了PyTorch
或者时Tensorflow
,也会因为和服务器的硬件设备驱动版本不一致导致运行不成功!
写在前面
使用以下部署工具部署环境时,最好不要使用官方提供的文件,而是自己新创建一个文件,然后把必须的包写入,然后再进行部署!原因如下:
- 作者提供的一般都是使用命令直接导出的,而导出的文件我们打开看,会发现除了各种版本信息
=...
外,后面还跟着许多奇奇怪怪的字符,这个虽然也是指定相应的版本,但是大概率是和自己的机器相匹配的信息,如果直接安装,后面出现各种奇怪的错误,你都不会发现是版本问题导致的!- 我们要做的,就是手动导入,然后自己指定相关版本信息,这样安装的包就是和自己的机器匹配的,不会安装错误!
一、pip 自动部署工具 requirements.txt
- 官方说明文档:https://pip.pypa.io/en/stable/ 直接搜索
requirements.txt
就可以查找到。- 各个参数的说明:https://pip.pypa.io/en/stable/cli/pip_install/#install-index-url
生成当前环境的依赖:
pip freeze > requirements.txt
其中 requirements.txt
文件内容如下。
# 不写版本号默认安装最新的版本
matplotlib==xxx
Pillow==xxx
使用 requirements.yml
完成环境部署:
conda/source activate 虚拟环境
pip install -r requirements.txt
二、conda 自动部署工具 environment.yml
请注意,
Conda
建议environment.yml
手工创建(即手动填写那些必须的依赖包以及相关配置),如果要跨平台(Windows / Linux /Mac
)共享环境,这尤其重要。在这种情况下,您可以省略该prefix
行。
- 官方说明文档:https://docs.conda.io/projects/conda/en/latest/index.html
- 参考链接1:http://www.codebaoku.com/question/question-cd-176717.html
使用以下命令将当前激活的虚拟环境保存:
conda env export > environment.yml
在当前目录下自动生成相关安装依赖关系,具体示例如下。
name: xxx
channels:
# 指定下载通道,可以指定.condarc中的下载通道,也可以指定官方下载通道,从上到下进行优先选择
- defaults # 使用默认的下载源通道
- custom # 这个在清华源的官方配置文件中也进行指定的
- pytorch # 不要认为是官方的下载源,如果是直接复制的清华源配置,那么这里已经重定向到清华源了
- anaconda
- conda-forge # cudatoolkit 就是从这个源里面下载
# - nodefaults # 使得默认的下载源失效!看情况使用
dependencies:
# 以下python和pip必须指定
- python=3.x # 这里还能指定版本:python>=3.5
- pip # 这个必须有,因为后面使用到了 pip,不然都没有安装怎么执行后面的 pip 命令
- xxx # 这里可以指定使用 conda install 安装的包,比如 pytorch, torchvision, torchaudio 三套件(注意:不需要指定 cudnn,PyTorch-GPU 默认会安装[torch cudatoolkit cudnn] 这三者之间的匹配关系会自动帮我们选好,默认的是最新版)
- pip:
- xxx # 这里也可以指定版本:numpy==1.16.0
- [-f] https://.. # 指定的下载通道
例子:
name: GlobalTrack
channels:
- defaults
- pytorch
- conda-forge
dependencies:
# 注意 1: dependencies 里面版本指定与 pip 里面版本指定的区别
# 这里使用的是 =, 或者 > <,而 pip 里面使用的是 == >= <=
- python=3.8
# 使用 conda install 安装 PyTorch,注意原来指定的通道这里放在 `channels` 里面了
- pytorch=1.8.1
- torchvision=0.9.1
- torchaudio=0.8.1
- cudatoolkit=11.1
- pip
- pip:
- black
- imageio
- mmcv==0.4.3
- numpy
- opencv-python
- opencv-python-headless
- Pillow
- scikit-image
- scikit-learn
- scipy
- Shapely
# 以下是使用 pip install 安装的配置
# - torch==1.8.1+cu111
# - torchaudio==0.8.1
# - torchvision==0.9.1+cu111
# - -f https://download.pytorch.org/whl/torch_stable.html
prefix: ~/anaconda3/envs/GlobalTrack # 不会发生作用,只是给其他人说明安装的位置
指定安装版本时,注意
pip
使用双等号,dependencies
中为等号!如果不指定,默认安装最新的版本。
使用 envrionment.yml
完成环境部署:
conda env create -f environment.yml
参考链接:https://www.jianshu.com/p/7cc505f8e2bd
总结
使用 conda
部署时可以一步到位,简单,但是有以下两个明显的缺点:
- 整个安装过程的提示信息是很少的,而且安装的出错后的提示信息不是很全面。比如说如果是在
pip
那部分某一个包安装失败,导致整个部署过程直接结束,最后提示的信息竟然给我们定位到了conda
自动创建的临时文件conda.emvs.requirenmens.txt
(好像是这个名字,其实在pip
这部分,还是调用的pip install -r requirements.txt
来安装,所以为什么会有这个临时文件),安装终止后,该临时文件也没有了!所以提示信息不是很友好。当然,如果要定位的话,还是可以的。一般会提示在多少行出错,直接从environment.yml
中的pip
开始,往下对应到相同的行数就可以。 - 如上所述,如果其中的某一个包安装失败,后面的所有包都不会被下载,直接终止。然而,该环境已经创建,如果直接使用上述命令进行部署,会提示
CondaValueError: prefix already exists:~/anaconda3/envs/GlobalTrack
,这时如果需要重新安装,必须先卸载!
conda remove -n GlobalTrack --all
# 或者直接删除安装虚拟环境的文件夹
rm -rf ~/anaconda3/envs/GlobalTrack
这是相当麻烦的,令人不快!conda
好像并没有提供直接强行覆盖的功能,因此只能这样操作!
附:手动创建环境时顺便安装深度学习包
这里需要纠正一点的是,如果我们不需要做 CUDA
编程(相信大部分小伙伴都用不到),那么我们是不需要进行那么复杂的 CUDATOOLKIT cuDNN
的安装配置的,只需要把 NVIDIA
驱动安装好就可以了!然后在安装 PyTorch Tensorflow-GPU
的时候,只要指定的是 GPU
版,以及对应的 CUDA/cudatoolkit
版本(主要是和自己机器的 NVIDIA-DRIVER CUDA
版本匹配——自己机器的不能低于 PyTorch/Tensorflow
要求的最低版本)就会自动下载 这三套件了 pytorch/tensorflow cudatoolkit cudnn
,小伙伴们可以自己仔细看看控制台的安装信息!文章来源:https://www.toymoban.com/news/detail-446609.html
友情提示:为什么需要时刻关注控制台的安装信息呢?因为有的时候明明我们指定的是
GPU
版本,如果我们不仔细看,那么可能就会默认变成了CPU
版本,那么后面调用相应的包时肯定是找不到了的啦!这里为什么会改变大概率是版本不匹配(CUDA & PyTorch/Tensorflow
)引起的,可以更换下安装的版本试试!文章来源地址https://www.toymoban.com/news/detail-446609.html
到了这里,关于使用配置文件创建conda环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!