• 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 测试是否可以正常打开,如下图

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

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

     而在主机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

  • 相关阅读:
    【VulnHub靶场】Hackable: III
    【事务代码】MF60-拉料清单
    请协助我搭建 bert
    【SpringCloud学习笔记】Ribbon负载均衡
    HTML基础学习第五篇(HTML表单与输入)
    Elasticsearch从入门到精通-05ES匹配查询
    9月份腾讯云盛惠抢购活动:爆款云服务器2核2G4M低至6.6元/月
    nginx之location的优先级和nginx的重定向
    Golang笔记
    从Spring为什么要用IoC的支点,我撬动了整个Spring的源码脉络
  • 原文地址:https://blog.csdn.net/FY_2018/article/details/127137564