conda
conda
conda是一个包,依赖和环境管理工具,适用于多种语言,如: Python, R, Scala, Java, Javascript, C/ C++, FORTRAN
conda默认随miniconda或anaconda发行,因此要安装conda,只需要安装miniconda或anconda即可。
如果通过anaconda安装, 国内直接从官网下载安装包会比较慢,可以通过清华大学的源 (opens new window)下载。
目录结构
安装anacoda后,在用户HOME目录下,会有一个anaconda
目录,目录结构如下
$ tree -L 1 anaconda
anaconda
├── Anaconda-Navigator.app
├── bin
├── conda-meta
├── doc
├── envs # conda管理的环境信息
├── etc
├── include
├── lib
├── libexec
├── mkspecs
├── phrasebooks
├── pkgs # 里面是解压的软件安装包
├── plugins
├── python.app
├── qml
├── resources
├── sbin
├── share
├── ssl
└── translations
20 directories, 0 files
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
bin
, include
, lib
, share
里面是conda默认环境的文件
常用配置
conda默认的配置文件为~/.condarc
,通过修改配置文件: 我们可以配置如下内容:
- conda从哪里获取安装包
- conda是否使用代理服务器
- conda从哪里获取环境信息
- 是否更新bash提示当conda环境激活的时候
- 等其它配置信息
查看所有配置信息
$ conda config --show --json
配置使用清华的源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
2
3
4
5
配置安装软件时不要提示输入yes
$ conda config --set always_yes true
更多配置可以参考https://conda.io/docs/user-guide/configuration/index.html
一个conda环境就是一个目录包含所有的安装包和依赖,不同环境之间独立且不相互影响。跟python的虚拟环境virtualenv
一样
可以通过执行 anaconda search -t <software>
来列出保存目标软件的所有官方镜像
conda 管理
# 查看当前版本
$ conda --version
conda 4.3.27
# 更新conda
$ conda update conda
2
3
4
5
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环境) |
示例:
# 创建一个名为snowflakes的环境,并安装biopython(默认使用下载anconda时选择的python版本)
$ conda create --name snowflakes biopython
# 激活环境
$ source activate snowflakes
# 退出环境
$ source deactivate
# 创建名为bunnies,使用python 3.5版本的环境,并安装astroid和babel
$ conda create --name bunnies python=3.5 astroid babel
# 查看所有的环境
$ conda info --envs(conda env list)
# 复制snowflakes环境到flowers
conda create --name flowers --clone snowflakes
# 删除环境 -–all如果不加上的话代表删除的是当前环境下的一个包,比如numpy等
$ conda remove --name flowers --all
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
conda环境离线迁移
conda-pack
是一个命令行工具,用于打包conda环境。该命令会将坏境中安装的软件包的二进制文件进行打包。
注:本方法不需要下载安装包,因此,conda-pack需要指定平台和操作系统,目标计算机必须于源计算机有相同的平台和操作系统。
打包
在conda的base环境中安装conda-pack;
pip install conda-pack
打包一个环境
# Pack environment my_env into my_env.tar.gz
conda pack -n my_env
# Pack environment my_env into out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz
# Pack environment located at an explicit path into my_env.tar.gz
conda pack -p /explicit/path/to/my_env
2
3
4
5
6
7
8
重现
# Unpack environment into directory `my_env`
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env
# Use Python without activating or fixing the prefixes. Most Python
# libraries will work fine, but things that require prefix cleanups
# will fail.
./my_env/bin/python
# Activate the environment. This adds `my_env/bin` to your path
source my_env/bin/activate
# Run Python from in the environment
(my_env) $ python
# Cleanup prefixes from in the active environment.
# Note that this command can also be run without activating the environment
# as long as some version of Python is already installed on the machine.
(my_env) $ conda-unpack
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pip download
利用pip将服务运行所依赖的包下载到本地,拷贝到目标服务器进行离线安装。
- 保存虚拟环境到requirements.txt
pip list --format=freeze > requirements.txt
注: 此处不使用pip freeze命令是因为pip freeze导出的文件会出现@ file://的问题,导致后续下载依赖包的时候出现问题。
- 下载依赖包到指定目录
pip download -r requirements.txt -d "/home/admin/packs" -i https://pypi.tuna.tsinghua.edu.cn/simple
2
- 将requirements.txt和依赖包拷贝到目标服务器
- 在目标服务器创建conda虚拟环境
conda create -n my_env python=3.6.5 pip=10.0.1 --offline
--offline
:指定离线创建虚拟环境;python=3.6.5 & pip=10.0.1
:指定默认的python版本号、并安装pip工具
,如果不安装pip
,则改虚拟环境使用默认的pip
工具,就无法将依赖包安装到新虚拟环境。Anaconda自带的package在anaconda3/pkgs
目录下,可自行查看;
- 切换到虚拟环境,并安装依赖包
pip install -U --no-index --find-links=./packs -r requirements.txt
2
备注: 若出现
Cannot uninstall 'xxxx'. It is a distutils installed project and thus we cannot accurately det...
(xxx是某package的名称),使用如下命令进行解决:
pip install -U --ignore-installed --no-index --find-links=./packs xxx
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看作和其他包一样,可以在创建虚拟环境的时候指定
# 查看可用的python版本
$ conda search --full-name python
# 安装不同版本的python
$ conda create --name snakes python=3
2
3
4
5
conda packages管理
查看可以通过conda命令安装的包名,可以在网站查看http://docs.continuum.io/anaconda/pkg-docs.html
# 查看当前环境下的已经安装的包
$ conda list
# 查找包
$ conda search beautifulsoup4
# 安装包到环境bunnies,不加--name时,默认安装到当前环境
$ conda install --name bunnies beautifulsoup4
2
3
4
5
6
7
8
conda默认从https://repo.continuum.io/pkgs/下载安装包,当无法找到需要的安装包时,可以通过Anaconda.org安装包, 在http://anaconda.org可以搜索可用的包并在包详情页面获取下载命令,如:
# 安装包bottleneck
$ conda install -c conda-forge bottleneck
# 检查安装结果
$ conda list
2
3
4
5
使用pip命令安装包,当无法使用conda安装,也无法从Anaconda.org下载到需要的安装包时,可以通过pip命令安装
$ pip install see
# 查看包
$ conda list
2
3
4
删除指定环境里的包
$ conda remove --name bunnies iopro
anconda3虚拟环境离线迁移到服务器
Reference
- https://blog.csdn.net/u013232219/article/details/114535937
准备本地虚拟环境(要迁移的环境)
conda pack -n venv_name -o output_name.tar.gz #venv_name 本地虚拟环境的名称
如果提示No command 'conda pack',
则尝试使用
conda install -c conda-forge conda-pack
安装完成后重新进行打包。
上传压缩文件
使用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:/path
C、从服务器下载整个目录 scp -r username@serverIP:/var/download/remote_dir/(远程目录) /var/download/local_dir(本地目录)
d、上传目录到服务器 scp -r local_dir username@serverIP:remote_dir
服务器安装
在服务器上找到服务器上的Anaconda3的环境安装路径:
查看conda环境安装路径命令: conda info --env
进入目录: cd Anaconda3/envs/
创建虚拟环境目录: mkdir -p pdocr
将刚才上传的虚拟环境压缩文件解压至目录:
tar -xzvf output_name.tar.gz -C Anaconda3/envs/pdocr
2
3
4
5
6
环境应该已迁移安装成功了,
检查是否出现了迁移的虚拟环境:conda info -e
激活虚拟环境: source activate pdocr
检查是否所有的包均成功迁移: conda list