anaconda环境克隆/迁移base环境后发现import包报错
离线迁移anaconda环境步骤,先在新服务器上安装了相同版本的anaconda,然后将原服务器中的base环境克隆并打包,复制到新服务器后解压并激活,然后在使用时import pandas报错,还有其他包也有问题,发现clone的环境与原环境并不一致…
问题描述
发现问题原因在于clone命令克隆的环境与原base环境并不一致,导致import报错
conda create -n [name] --clone base
克隆命令后对比/anaconda3/envs/base_clone/lib/python3.6/site-packages/pandas文件夹与原/anaconda3/lib/python3.6/site-packages/pandas发现文件夹大小并不一致,导致克隆环境下import报错
解决方案:
由于还发现其他第三方包也有问题,索性将site-packages下的除了pip包外的整个site-packages文件夹删除,将base环境的site-packages复制过来,即把/anaconda3/lib/python3.6/site-packages复制到/anaconda3/envs/base_clone/lib/python3.6下,再把备份的pip复制进去。
cp -r ~/anaconda3/envs/base_clone/lib/python3.6/site-packages/pip ~/backup
rm -rf ~/anaconda3/envs/base_clone/lib/python3.6/site-packages
cp -r ~/anaconda3/lib/python3.6/site-packages ~/anaconda3/envs/base_clone/lib/python3.6
rm -rf ~/anaconda3/envs/base_clone/lib/python3.6/site-packages/pip
mv ~/backup/pip ~/anaconda3/envs/base_clone/lib/python3.6/site-packages
然后再import包时就正常了,再次将该环境打包复制到新服务器,解压后激活环境,即可在新服务器的环境下正常使用了。
至于clone命令为什么导致导致复制前后文件不一致,尚不清楚原因。