python【anaconda安装】多环境配置,环境迁移,离线环境迁移,多版本python并存
1、说明
因为内网生产环境无法访问互联网,所以python很多包无法使用pip进行下载,只能通过离线的方式拷贝,一个个拷贝很繁琐。
所以可以使用使用anaconda进行管理,实现python环境的迁移。
2、方案
-
首先,确认内网生产环境无法访问互联网且无法使用pip进行包下载的情况。
-
在可以连接互联网的机器上安装Anaconda。可以从Anaconda官网(https://www.anaconda.com/products/individual)下载适合的安装包,然后将安装包拷贝到内网环境中进行安装。
-
在内网环境中执行安装包的脚本,按照提示完成Anaconda的安装。
-
安装完成后,配置Anaconda的环境变量,将Anaconda的路径添加到系统的PATH环境变量中。
-
使用conda创建一个新的虚拟环境,可以选择指定Python版本。
-
激活虚拟环境,进入虚拟环境的命令行界面。
-
在可以连接互联网的机器上,使用conda安装所需的Python包,并将所有安装好的包导出为一个环境文件。
-
将导出的环境文件拷贝到内网环境中。
-
在内网环境中,使用conda根据环境文件创建一个完全相同的虚拟环境,并激活该环境。
-
确认内网环境中的虚拟环境已经安装了所需的Python包,可以正常使用。
3、安装部署步骤
需要另外准备一个可以连接互联网的linux环境作为拷贝源。
3.1、安装 anaconda
安装可以参考:https://blog.csdn.net/wyf2017/article/details/118676765
3.1.1.下载资源
资源地址:https://repo.anaconda.com/archive/,找到需要安装的版本,例如:https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
可以下载完拷贝进服务器,也可以使用wget命令下载
wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
3.1.2、 安装anaconda
赋权、安装
# 赋权
chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
#安装
./Anaconda3-5.3.0-Linux-x86_64.sh
一路回车和 ‘yes’,最后有个是否安装 vscode 的选项,如果不需要,可以选择 no。
离线环境也是同样的安装步骤。如果 环境变量在安装的时候没有选择 yes 略过了的话,就配置一下环境变量,如果可以直接使用就不需要 编辑环境变量。
编辑环境变量:
比如当前是 sthb 用户 ,则进入文件编辑
# 编辑环境变量
vi /home/sthb/.bashrc
在最后一行添加:
export PATH=/home/sthb/anaconda3/bin:$PATH
# 注意: anaconda3 的位置是按照的anaconda的位置,按照实际情况修改
然后保存更改,输入下面这句指令:
source /home/sthb/.bashrc
打开新的终端后,进入自己的文件夹目录下,输入anaconda -V(注意a要小写,V要大写),conda -V ,显示版本信息,若显示则表示安装成功。
conda -V
conda 4.5.11
3.2 、虚拟环境安装使用
3.2.1 、创建虚拟环境
# python37 是自己取的名字
conda create -n python379 python=3.7.9
3.2.2、激活环境
conda activate python379
出现下面的内容:
(python379) [sthb@host-19-105-194-193 test]$
说明安装成功,在这个环境下操作python就是 python3.7.9 的环境,可以安装项目需要的库,不会与其他的python版本相冲突。
如果出现以下内容:
[root@master anaconda3]# conda activate python379
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
If your shell is Bash or a Bourne variant, enable conda for the current user with
$ echo ". /root/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc
......
则使用
source activate python379
激活虚拟环境,参考:https://blog.csdn.net/sdnuwjw/article/details/112448792
4、环境迁移
因为生产环境无法访问外网,所以无法通过pip安装库。两个服务器都需要安装 anaconda
环境打包
进入到环境所在目录,在我的在 /home/sthb/anaconda3/envs 下(根据安装路径决定)打包
# 打包
tar -zcf conda_python379.tar.gz *
环境解压
# 进入目标主机 anaconda的envs目录,创建目录python379
cd /home/sthb/anaconda3/envs
mkdir python379
cd python379
# 把包拉取到目标服务器 的/home/sthb/anaconda3/envs/python379 ,解压
tar -xzf conda_python379.tar.gz
查看是否迁移成功:
[sthb@host-19-105-194-193 test]$ conda info -e
# conda environments:
#
base /home/sthb/anaconda3
python379 * /home/sthb/anaconda3/envs/python379
我这里已经显示成功了。
激活虚拟环境 python379
[sthb@host-19-105-194-193 test]$ conda activate python379
(python379) [sthb@host-19-105-194-193 test]$
如上,检查解压后的环境正常,所有包都存在。可以正常使用。