ubuntu主机之间移植python环境并修改pip指向

为了便于描述,假定有两台ubuntu主机,分别为A主机和B主机,场景为将A主机上已安装好的python3.7的环境移植到主机B中。

环境移植的方法可以方便的解决多主机同时部署同一个python环境的问题,也可以解决由于其他原因,python环境无法在某台主机上正常安装的问题。

1、在主机A上创建py37环境

有图形界面的,可以按anaconda的方法进行创建;没有图形界面的,可以利用conda命令进行创建。我们创建一个python3.7的环境,并命名为py37。

py37环境创建完成以后,激活该环境,并安装相应的包,比如安装Numpy (pip install numpy).

2、把环境数据打包

找到主机A上py37环境的安装位置,linux系统一般会在 ~/.conda/envs目录下,也可能在anaconda安装目录的 envs目录下,如果找不到,在激活当前py37环境下(conda activate py37),使用命令which python 可以显示当前环境的位置,如下图:

 进入到py37环境的目录下,如下图中py37即为py37环境的数据

使用  如下命令 将数据打包,打包以后就直接把py37_envs.tar.gz复制到主机B上。

tar czvf py37_envs.tar.gz ./py37/*

3、主机B上的配置

将py37_envs.tar.gz复制到主机B上任意位置,本例直接得到到/root/目录下。

解压命令如下,解压之后,在/root目录下会有py37的目录

tar cxvf py37_envs.tar.gz

 之后,将py37环境添加到主机B的路径中

export PATH=/root/py37/bin:$PATH

此时,可以在命令行输出 python 测试是否可以正常打开,如下图

ubuntu主机之间移植python环境并修改pip指向_第1张图片

4. 修改pip指向,以使pip可以正常工作

因为在主机B上Python3.7的环境是从主机A复制而来的,所以pip所指向的python的路径可能是不一样的。比如在本例中,主机A上pip的指向为下图中红框的路径:/home/test/.conda/envs/py37/bin/python

ubuntu主机之间移植python环境并修改pip指向_第2张图片

 而在主机B上,python3.7的路径是/root/py37_envs/bin/python,所以如果不修改pip的指向,pip无法使用,即不能安装新包到python3.7中(这里假设主机B也是可以联网的)

修改方法:

打开主机B上的pip文件和pip3文件,将第一行的路径(即上图中红框中的路径修改为主机B上python3.7的路径,在本例中为/root/py37_envs/bin/python)

 修改完成以后,可以使用pip -V测试是否正常,可以安装新的包试试,比如

pip install dnspython

你可能感兴趣的:(ubuntu,python,python,ubuntu,pip)