突然有这么个需求,将conda环境整体打包分发,但是要部署的设备因为一些问题无法联网,也就是说我们不是要导出我们的包名称在另一台电脑上安装,而是将所有的源文件打包。这里我们用到了一个conda的包
安装pack包
首先我们需要安装 conda pack
conda install -c conda-forge conda-pack
这一步一般不会报错,报错的话重启解决90%,重装anaconda解决99%。
然后我们查看我们有哪些虚拟环境
conda info -e
我这里刚刚重装了,所以只有一个虚拟环境 RL_CPN
# conda environments:
#
base C:\Users\LoveSS\anaconda3
RL_CPN C:\Users\LoveSS\anaconda3\envs\RL_CPN
这个名为 RL_CPN 的环境是我们配置好的,可以正常运行代码的。
打包
我们激活这个需要的环境
conda activate RL_CPN
然后打包
conda pack RL_CPN
就会出现类似的画面
Collecting packages...
Packing environment at 'C:\\Users\\LoveSS\\anaconda3\\envs\\RL_CPN' to 'RL_CPN.tar.gz'
[### ] | 7% Completed | 5.9s
中间不出错的话就应该没问题,最终会得到 RL_CPN.tar.gz
这个打包文件,这个文件在当前目录,如果我们期望在指定的目录,可以先跳转到指令目录在执行打包程序,这种文件格式一般在Linux下或者Mac下可以直接通过 tar
命令解压,但是在Windows下我们还需要一点点技巧。
在另一台不能联网的计算机上安装
首先安装anaconda,这个是傻瓜式操作,需要注意的点是要我们选择上直接把conda添加到系统的PATH。安装好anaconda后,我们解压之前得到的RL_CPN.tar.gz
压缩包,其实windows下也有tar解压命令,只是参数和linux下的不太一样罢了,
tar -xf RL_CPN.tar.gz
参数 | 解释 |
---|---|
t | 显示档案文件列表内容(已压缩的文件) |
x | 解压档案文件 |
c | 生成档案文件,创建打包文件 |
f | 指定档案文件名称,f必须放在命令参数最后 |
我们解压出来一堆文件,这一堆文件先不要管,我们找到conda中存放虚拟环境的目录,如果之前我们安装conda的时候一直傻瓜操作连安装目录都没改的话,现在应该在 C:\Users\LoveSS\anaconda3\envs
这个目录下,其中 LoveSS
是我的计算机名称。我们在这个目录下新建一个文件夹叫做 RL_CPN
,然后把我们刚刚解压的文件复制进来,终端输入命令
conda info -e
现在我们就能看到我们想要的环境 RL_CPN 了,激活它
conda activate RL_CPN
然后我们就可以使用这个环境了
错误
在第一次尝试的过程中出现了一个错误,这个错误大概是anaconda is not in your PATH
,大概是这个意思,我尝试了将conda的路径放入系统的PATH中,重启后也没什么用,依旧报这个错误,重装anaconda后这个错误没了…