Conda 环境移植 (两种方式)
------------------------方法一------------------------
优点: 在原机器上需要进行的操作较少,且除了conda不需要其余的库来支撑;需要传输的文件小,操作较为简单。
缺点:在新的机器上复现原环境时,需要重新下载对应的依赖包,且可能会安装不上有些依赖包。耗费时间长,且完整重现环境的概率小。
具有待移植的环境的服务器:
1 进入你要移植的环境
conda activate your_env
2 导出当前conda环境到某个文件(文件名字可以自定义)
conda env export > env_filename.yaml
在执行这条语句时可能会报权限不足:zsh: permission denied: env_filename.yaml
以下是解决办法
(1)首先进入到服务器的anaconda的conda目录下(或者bin目录下) ../anaconda/bin/conda
(2)执行 chmod -R +x .../anaconda/bin
(3)再执行 conda init zsh
即可;再重新执行conda env export > env_filename.yaml 就不会报错了;注意生成的.yaml文件在你当前所在的文件夹下。
3 导出当前conda环境通过pip安装的包:
pip freeze > requirements.txt
注意生成的.txt文件在你当前所在的文件夹下。
需要安装移植环境的服务器:
1 复现conda环境
conda env create -f env_filename.yaml
此时建立了一个名字叫为env_filename的环境
2 复现conda环境中pip安装的包
进入新建立的env_filename环境,执行以下命令
pip install -r requirements.txt
到此结束,大功告成
------------------------方法二------------------------
优点:不需要在新的机器上二次下载,直接在对应位置解压打包好的环境包就可以直接使用;成功率高,推荐;
缺点: 如之前未安装过conda-pack,则需要先安装此包,需要额外操作;一般环境包较大,约几个G大小,传输到新机器上耗费的时间和网络资源大。
具有待移植的环境的服务器:
1 安装 conda-pack 包(若之前未安装过)
pip install conda-pack
tips: 如何报以下错误,
ERROR: Could not find a version that satisfies the requirement conda-pack (from versions: none)
ERROR: No matching distribution found for conda-pack
多半是网络问题,换个镜像源就ok
pip install conda-pack -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
2 打包原环境 (无论你当前位于哪个虚拟环境中)
conda pack -n env_name
env_name 是 你需要移植的环境名
该命令会在你当前所在的目录产生一个环境包的压缩文件 env_name.tar.gz
3 传输 env_name.tar.gz
使用SCP或者其他的命令或方式将 env_name.tar.gz 传输到 你需要移植到的新机器的 anaconda 的 envs 目录下: e.g. /home/pc/anaconda3/envs/
需要安装移植环境的服务器:
1 解压 env_name.tar.gz
首先在 /home/pc/anaconda3/envs/ 下新建mkdir一个文件夹 ,文件夹的名字就是压缩包的名称即可(当然也可以自定义一个新的名称)
然后使用以下命令解压环境压缩包到新建的文件夹中:
tar -xzf env_name.tar.gz -C ~/anaconda3/envs/env_name/
2 测试环境
直接 conda activate env_name 测试是否能够激活环境,如果可以则说明移植成功!
到此结束,大功告成
Conda 环境移植 (两种方式)的更多相关文章
- 将Java应用部署到SAP云平台neo环境的两种方式
方法1 - 使用Eclipse Eclipse里新建一个服务器: 服务器类型选择SAP Cloud Platform: 点Finish,成功创建了一个Server: Eclipse里选择要部署的项目, ...
- 两种方式测试 GNS3 环境
GNS3已经部署好了,怎么测试环境呢?两种方式,一是使用自带的VPC连接交换机互联互通,二是配合VMware连接GNS3中的交换机互联互通. 自带 VPC 测试 使用两台VPC与一台二层交换机相连,测 ...
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...
- 对Java代码加密的两种方式,防止反编译
使用Virbox Protector对Java项目加密有两种方式,一种是对War包加密,一种是对Jar包加密.Virbox Protector支持这两种文件格式加密,可以加密用于解析class文件的j ...
- 自学Linux Shell9.2-基于Red Hat系统工具包存在两种方式之一:RPM包
点击返回 自学Linux命令行与Shell脚本之路 9.2-基于Red Hat系统工具包存在两种方式之一:RPM包 本节主要介绍基于Red Had的系统(测试系统centos) 1. 工具包存在两种方 ...
- WCF服务使用(IIS+Http)和(Winform宿主+Tcp)两种方式进行发布
1.写在前面 刚接触WCF不久,有很多地方知其然不知其所以然.当我在[创建服务->发布服务->使用服务]这一过程出现过许多问题.如客户端找不到服务引用:客户端只在本机环境中才能访问服务,移 ...
- 远程访问Jupyter Notebook的两种方式:命令行和配置文件
远程访问Jupyter Notebook的两种方式:命令行和配置文件 相关配置:Ubuntu 16.04服务器,本地Win10,使用了Xshell,Xftp工具. 相关配置主要分为三步: 服务器上的J ...
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...
- WebService的两种方式Soap和Rest比较
我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...
- WebService的两种方式SOAP和REST比较 (转)
我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...
随机推荐
- RTMP播放器开发填坑之道
好多开发者提到,在目前开源播放器如此泛滥的情况下,为什么还需要做自研框架的RTMP播放器,自研和开源播放器,到底好在哪些方面?以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1. 低延 ...
- Session认证机制与JWT认证机制
一.什么是身份认证? 身份认证(Authentication)又称"身份验证"."鉴权",是指通过一定的手段,完成对用户身份的确认.日常生活中的身份认证随处可见 ...
- OpenCV读写视频操作
一.读取视频流 在使用OpenCV读取摄像头,或者处理一些磁盘中保存的视频文件时,通常使用VideoCapture进行读取. std::string video_path("/path/to ...
- 分布式链路追踪体验-skywalking入门使用
背景 旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉.然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了.或者公司内部有链路追踪系统,虽然可以很轻松地通过 ...
- 从源码中理解Spring Boot自动装配原理
个人博客:槿苏的知识铺 一.什么是自动装配 SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot在启动时会扫描外部引用jar包中的META-INF/spring.factori ...
- 《Java基础——继承》
Java基础--继承 一.类的继承: 规则: 1.一个子类只能有一个父类,但一个父类可以有多个子类,每个子类都可以作为父类使用. 2.若一个类没有声明父类,则默认其父类为Object. 3.父 ...
- 通过nginx转发rabbitmq访问手动添加队列的时候报错:Management API returned status code 405
原因: 正常访问该地址:https://xxx.xxx.com/rabbitmq/ 时能正常跳转,但是 rabbitmq management 的 API url 出现了 %2f 字符,这些字符会在经 ...
- MongoDB 分片集群的用户和权限一般操作步骤
步骤总结: 按照mongos路由.配置副本集服务,分片副本集服务的先后顺序关闭所有节点服务 创建副本集认证的key文件,复制到每个服务所在目录 修改每个服务的配置文件,增加参数 启动每个服务 创建账号 ...
- flask+gunicorn+nginx部署
安装nginx和gunicorn yum install nginx pip3 install gunicorn flask项目配置 #main.py from flask import Flask ...
- JavaScript之无题之让人烦躁的模块化
我怎么记得我好像写过相关类型的文章,但是我找遍了我的博客没有-那就再写一遍吧,其实模块化的核心内容也算不上是复杂,只不过需要整理一下,规划一下罢了.嘻嘻. 开始写标题的时候我就在纠结一件事情,就是,先 ...