赞
踩
最近在一家芯片厂前端实习,组里做npu,然后leader给了个任务要装一个npu的simulator用来跑网络测性能,问题是该simulator给出了 长长的 pip 依赖包,然后由于保密原因还必须在离线服务器上装,上传包都需要审批(难崩)。由于之前装conda环境都是 直接简单的 pip install 和 conda install线上安装,因此 捣鼓了很久才离线安装conda环境成功,写篇文章简单记录下,希望经验能帮助到以后需要在离线封闭环境里装 conda环境 和 深度学习依赖包的同学。
在跑不同的神经网络的时候我们需要不同版本的python,并且会需要许许多多不同版本的依赖包,鉴于此anaconda提供了虚拟环境,我们每次开始一个新的项目都可以新建一个python环境,在虚拟环境下我们可以下载不同的依赖包来满足项目需求。conda创建虚拟环境一般使用如下命令:
// create env
conda create -n my_env python=3.7
//list env
conda env list
conda activate my_env
//列举环境安装的软件包及版本号
conda list
pip install tensorflow=1.0
在创建环境后,进入虚拟环境,可以通过 conda list 查看当前环境安装的所有包的版本号,并可以通过pip install 来安装需要的包。我遇到的问题就是模拟器的说明中提供了长长的一段依赖包及版本(如下图),但pip install 是需要联网的,显然linux 服务器断网,因此就需要在另一台电脑上创建环境并安装好所有依赖包后将整个环境打包。
在另一台有网的电脑上按上一步创建好环境并下好软件包,这里有个快捷方法是如果要安装的包比较多可以如下使用pip,其中*.txt为安装包的清单,格式参考上一步的图片。
pip install -r requirement.txt
然后就要打包环境,这里有两种打包方法,一种只打包生成依赖包清单,这种需要被移植的电脑也联网,这里就顺便提一下。
目标环境有网
//打包
conda env export > environment.yml
//复现
conda env create -f environment.yml
离线环境
如果是离线环境就需要将整个环境打包,如果和目标电脑系统相同,那么可以直接将*\anaconda\env中的相应环境压缩,并转移到目标电脑上 相同的位置, 使用如下命令后可以直接现实移植成功。这次作者使用的就是这种方法。
zip -r my_env.zip env/my_env
//解压
unzip my_env.zip ./
//激活环境
source activate my_env
//查看环境
conda env list
如果在线环境和移植的目标环境系统不同,如一个是windows一个是linux,则需要使用conda 的有关命令打包,然后将有关压缩包转移到离线环境。
conda pack -n my_env -o my_env.tar.gz
//还原环境,在 目标电脑的 anaconda/env下
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env
//激活环境
source activate my_env
然后就可以用conda env list 查看环境是否安装成功。
配置好环境后终于可以安装simulator了,后续还有解压缩和安装whl文件,这里一并附上代码以供参考查阅。
//解压缩tar.gz 文件
tar -zxvf *.tar.gz
//安装whl 文件,whl是使用pip安装的安装包,注意环境的python版本
pip3 install *.whl
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。