不使用conda命令导出conda环境的方法求助
解决Ubuntu Live USB模式下恢复conda环境的办法
方案1:临时安装Miniconda导出环境
- 给Live系统装个临时Miniconda,重启后自动消失,不影响原系统:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p /tmp/miniconda - 挂载损坏系统的分区(假设挂载到
/mnt/ubuntu),激活目标conda环境:source /tmp/miniconda/bin/activate /mnt/ubuntu/home/你的用户名/anaconda3/envs/目标环境名 - 导出环境配置到USB,生成的
environment.yml不会有符号链接问题:conda env export > /media/你的USB盘符/environment.yml - 后续在新系统里用
conda env create -f environment.yml就能重建环境。
方案2:用支持符号链接的文件系统复制环境
- 先备份USB所有数据,再将其格式化为ext4(注意替换分区名):
sudo mkfs.ext4 /dev/sdX1 # 把sdX1换成你的USB分区,比如sdb1 sudo mount /dev/sdX1 /media/usb_ext4 - 用
rsync完整复制环境,保留符号链接:rsync -avl /mnt/ubuntu/home/你的用户名/anaconda3/envs/目标环境名 /media/usb_ext4/-l参数会保留原环境的符号链接,不会重复复制链接指向的文件。
方案3:手动提取依赖列表重建环境
- 进入损坏系统的conda环境目录下的
conda-meta文件夹:cd /mnt/ubuntu/home/你的用户名/anaconda3/envs/目标环境名/conda-meta - 提取所有包名和版本,生成可直接使用的依赖文件:
grep -r '"name": "' . | cut -d'"' -f4 > packages.txt grep -r '"version": "' . | cut -d'"' -f4 > versions.txt paste -d'==' packages.txt versions.txt > /media/你的USB盘符/requirements.txt - 新系统创建conda环境后,用
pip install -r requirements.txt即可安装所有依赖。
内容的提问来源于stack exchange,提问作者Emiliano Nava
相关产品推荐
相关产品推荐

