zoukankan      html  css  js  c++  java
  • 多版本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



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

  • 相关阅读:
    swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
    swift 第十三课 GCD 的介绍和使用
    swift 第十二课 as 的使用方法
    swift 第十一课 结构体定义model类
    swift 第十课 cocopod 网络请求 Alamofire
    swift 第九课 用tableview 做一个下拉菜单Menu
    swift 第八课 CollectView的 添加 footerView 、headerView
    swift 第七课 xib 约束的优先级
    swift 第六课 scrollview xib 的使用
    swift 第五课 定义model类 和 导航栏隐藏返回标题
  • 原文地址:https://www.cnblogs.com/sddai/p/14314353.html
Copyright © 2011-2022 走看看