conda
conda
conda是一个包,依赖和环境管理工具,适用于多种语言,如: Python, R, Scala, Java, Javascript, C/ C++, FORTRAN
conda默认随miniconda或anaconda发行,因此要安装conda,只需要安装miniconda或anconda即可。
如果通过anaconda安装, 国内直接从官网下载安装包会比较慢,可以通过清华大学的源下载。
目录结构
安装anacoda后,在用户HOME目录下,会有一个anaconda目录,目录结构如下
1 | |
bin, include, lib, share里面是conda默认环境的文件
常用配置
conda默认的配置文件为~/.condarc,通过修改配置文件: 我们可以配置如下内容:
- conda从哪里获取安装包
- conda是否使用代理服务器
- conda从哪里获取环境信息
- 是否更新bash提示当conda环境激活的时候
- 等其它配置信息
查看所有配置信息
1 | |
配置使用清华的源
1 | |
配置安装软件时不要提示输入yes
1 | |
更多配置可以参考https://conda.io/docs/user-guide/configuration/index.html
一个conda环境就是一个目录包含所有的安装包和依赖,不同环境之间独立且不相互影响。跟python的虚拟环境virtualenv一样
可以通过执行 anaconda search -t <software>来列出保存目标软件的所有官方镜像
conda 管理
1 | |
conda环境管理
| 功能 | 代码 |
|---|---|
| 创建环境 | conda create -n environment-name |
| 激活环境 | conda activate |
| 关闭环境 | conda deactivate |
| 删除环境 | conda remove -n environment-name –all |
| 打开终端自动进入conda环境 | conda config –set auto_activate_base true |
| 关闭打开终端自动进入conda环境 | conda config –set auto_activate_base false |
| 复制Conda的虚拟环境的命令 | conda create -n conda-env2 –clone conda-env1 (这里conda-env2是新创建的Conda环境,conda-env1是被复制的Conda环境) |
示例:
1 | |
conda环境离线迁移
conda-pack是一个命令行工具,用于打包conda环境。该命令会将坏境中安装的软件包的二进制文件进行打包。
注:本方法不需要下载安装包,因此,conda-pack需要指定平台和操作系统,目标计算机必须于源计算机有相同的平台和操作系统。
打包
在conda的base环境中安装conda-pack;
1 | |
打包一个环境
1 | |
重现
1 | |
pip download
利用pip将服务运行所依赖的包下载到本地,拷贝到目标服务器进行离线安装。
- 保存虚拟环境到requirements.txt
1 | |
注: 此处不使用pip freeze命令是因为pip freeze导出的文件会出现@ file://的问题,导致后续下载依赖包的时候出现问题。
- 下载依赖包到指定目录
1 | |
- 将requirements.txt和依赖包拷贝到目标服务器
1 | |
- 在目标服务器创建conda虚拟环境
1 | |
--offline:指定离线创建虚拟环境;python=3.6.5 & pip=10.0.1:指定默认的python版本号、并安装pip工具,如果不安装pip,则改虚拟环境使用默认的pip工具,就无法将依赖包安装到新虚拟环境。Anaconda自带的package在anaconda3/pkgs目录下,可自行查看;
- 切换到虚拟环境,并安装依赖包
1 | |
备注: 若出现
Cannot uninstall 'xxxx'. It is a distutils installed project and thus we cannot accurately det...(xxx是某package的名称),使用如下命令进行解决:
1 | |
conda 导入导出虚拟环境
激活环境
conda acitvate environment-name
导出虚拟环境
conda env export > environment-name.yaml
创建环境
conda env create -n new-environment-name -f environment-name.yaml (根据environment-name.yaml创建名为new-environment-name的虚拟环境)
conda python版本管理
conda把python看作和其他包一样,可以在创建虚拟环境的时候指定
1 | |
conda packages管理
查看可以通过conda命令安装的包名,可以在网站查看http://docs.continuum.io/anaconda/pkg-docs.html
1 | |
conda默认从https://repo.continuum.io/pkgs/下载安装包,当无法找到需要的安装包时,可以通过Anaconda.org安装包, 在http://anaconda.org可以搜索可用的包并在包详情页面获取下载命令,如:
1 | |
使用pip命令安装包,当无法使用conda安装,也无法从Anaconda.org下载到需要的安装包时,可以通过pip命令安装
1 | |
删除指定环境里的包
1 | |
anconda3虚拟环境离线迁移到服务器
Reference
准备本地虚拟环境(要迁移的环境)
1 | |
如果提示No command ‘conda pack’,
则尝试使用
1 | |
安装完成后重新进行打包。
上传压缩文件
使用WinSCP进行上传下载文件
如果开发服务器和生产服务器网络不通,且没有winSCP则:
拥有SecureCRT则: ALT+P 进入sftp界面
可以用 lpwd 命令查看当前界面锁定的windows路径
指定操作的windows中的路径 命令是 lcd 命令,例如:lcd D:\download上传命令: put E:\ocr_code\output_name.tar.gz
下载命令: get output_name.tar.gz没直连权限时,只能先上传文件到跳板机,再从跳板机传到生产服务器:
a、从服务器上下载文件
scp username@serverIP:/path/filename /var/download/local_dir(本地目录)b、上传本地文件到服务器
scp /path/filename username@serverIP:/pathC、从服务器下载整个目录
scp -r username@serverIP:/var/download/remote_dir/(远程目录) /var/download/local_dir(本地目录)d、上传目录到服务器
scp -r local_dir username@serverIP:remote_dir
服务器安装
在服务器上找到服务器上的Anaconda3的环境安装路径:
1 | |
环境应该已迁移安装成功了,
检查是否出现了迁移的虚拟环境:conda info -e
激活虚拟环境: source activate pdocr
检查是否所有的包均成功迁移: conda list



