• 多版本Python安装pip及pip版本管理


    有时候电脑或服务器里需要安装多个版本的Python,比如Python2.7、Python3.5、Python3.6。同时存在多个版本的Python,如何安装对应的pip成为一个头疼的问题,本文从原理入手,详解如何安装对应Python版本的pip,当然也适合单一版本Python的pip的安装。

    本文所用系统环境:Ubuntu16。

    pip,说到底只是Python的一个包,平时我们安装Python包都是用pip安装的,那么pip怎么安装?最简单的方法,可以使用下面命令:

    sudo apt-get install python-pip

    sudo apt-get install python3-pip

    那么如果要为Python3.5和Python3.6同时安装pip这种方法就不行了,网上有很多方法,小编也是看的头晕眼花,那么下面小编介绍一种方法来从根本上解决多版本Python安装对应pip的问题,以及对pip对应Python版本进行管理。

    第一步,安装pip包

    上面说了,pip说到底就是Python的一个包。所以首先我们就要先安装这个包,用下面两行命令来安装:

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    python get-pip.py

    如果你要为Python3.6安装pip,就把上面第二行命令换成:

    python3.6 get-pip.py

    同理,为Python3.5安装则换成相应版本。然后查看一下是否安装成功:

    pip -V

    显示下面说明安装成功。

    pip 10.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

    其实到这已经成功安装指定版本Python对应的pip,如果只为安装pip则下一步可以不看。

    第二步,管理pip对应的Python版本

    我们发现,每次安装pip,它都会把默认pip对应的Python修改,导致pip对应版本混乱。首先用下面命令查看pip对应的Python版本:

    pip -V
    pip2 -V
    pip3 -V

    可能pip对应的是Python3.6,pip3对应的也是Python3.6。如果想让pip对应Python2.7,pip3对应Python3.5怎么办呢?

    转到下面目录:

    cd /usr/local/bin

    然后ls一下可能会发现好多pip文件,比如pip、pip2、pip2.7、pip3、pip3.5等等。使用一下命令:

    file pip

    输出:pip: Python script, ASCII text executable。发现pip其实是个Python脚本。于是我们用vim打开它:

    #!/usr/bin/python3.6
    
    # -*- coding: utf-8 -*-
    import re
    import sys
    
    from pip._internal import main
    
    if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
        sys.exit(main())

    看第一行,第一行指定了这个脚本对应的python版本,如果想把pip对应的python版本改为2.7的,只需修改python3.6为python2.7即可。修改保存后执行:

    pip -V

    若出现下面提示

    Traceback (most recent call last):
      File "/usr/local/bin/pip", line 7, in <module>
        from pip._internal import main
    ImportError: No module named _internal

    则说明修改后的python(上文修改的为python2.7)没有安装pip包,使用第一步的方法安装pip包即可。

    同理,如果想新建一个,比如新建一个pip3.6,touch pip3.6,然后把上面内容粘进去即可,其它版本也同理,最后别忘了为新建的文件加上可执行权限。

    但是,不同版本pip对应的这个脚本文件的内容不同,上面显示的是pip 10.0版本的,其它版本的脚本文件内容可能与之不同。直接改这个脚本文件来修改pip对应的python版本的前提是:当前脚本文件对应的Python版本与要修改对应的Python版本的pip包版本最好一致,不一致很可能出错。最简单的解决办法是都升级为最新的pip版本。

    到此为止,我们可以对pip为所欲为了。

    编辑于 2018-05-30
    原文地址:https://zhuanlan.zhihu.com/p/37473690



    如果这篇文章帮助到了你,你可以请作者喝一杯咖啡

  • 相关阅读:
    linux服务器时间同步
    07_DICTIONARY_ACCESSIBILITY
    Oracle监听静态注册和动态注册
    Oracle安装基本步骤
    笔试面试(2)阿里巴巴2014秋季校园招聘-软件研发工程师笔试题详解
    Global and Local Coordinate Systems
    齐次坐标(Homogeneous Coordinates)
    朴素贝叶斯分类器的应用
    图像数据到网格数据-1——MarchingCubes算法
    PCL源码剖析之MarchingCubes算法
  • 原文地址:https://www.cnblogs.com/sddai/p/14314353.html
Copyright © 2020-2023  润新知