mac系统,python2/3共存时,如何区分各自的pip ?
发布于 作者:苏南大叔 来源:程序如此灵动~因为python2
和python3
在一定时期内,都还会同时共存。那么不同的python
版本,也需要不同的pip
。也就是本文中所描述的pip2
和pip3
,也就是基于上述概念而引申出来的。用于python2
的pip
,苏南大叔称之为pip2
。那么,同理,用于python3
的pip
,就被苏南大叔称之为pip3
了。这就是本文中pip2
和pip3
的由来。而默认的pip
命令,就可以在pip2
和pip3
之间切换。
本文的写作测试环境为mac
。在关于本文中出现的python2
和python3
的概念,可以查看本文的前置阅读文章,来具体了解一下相关写作背景。
特定版本python
安装特定版本pip
安装pip2
的话,就用python2
执行安装脚本。同理,安装pip3
的话,就用python3
执行安装脚本。下面是使用python2
安装pip2
的范例。
curl -o get-pip.py 'https://bootstrap.pypa.io/get-pip.py'
sudo python2 get-pip.py
代码里面的python2
是个自定义的alias
命令,该定义位于:~/.bash_profile
文件。
要是想获得pip3
,那么要执行的命令可能是:
curl -o get-pip.py 'https://bootstrap.pypa.io/get-pip.py'
sudo python3 get-pip.py
对于命令中的别名python2
和python3
,如果您不想折腾的话,还可以不使用别名,而使用真正的python
绝对路径,来解决这个问题。
正常情况下来说,上述命令会提示:python2 command not found
。也就是说alias
在sudo
的情况下,不会被识别。
实际上遇到的问题是:不识别别名
上一步的操作仅仅是个理论值,在实际的操作中,会出现sudo
不识别alias
命令的情况。那么这种情况下,因为安装文件的缘故,必须需要使用sudo
。这就需要特殊处理,使得sudo
下能够识别出命令python2
这个自定义的别名了。
解决方式就是,再增加一个新的特殊alias
。配置文件位置是:~/.bash_profile
。
vi ~/.bash_profile
添加代码如下:
alias sudo='sudo '
代码有些邪门,等号左右,差别就是一个空格。读者们可要仔细查看。
然后使用下面的命令,刷新全局变量,识别新的设置。
source ~/.bash_profile
这样处理之后,就可以愉快的识别python2
这个自定义别名了。解决好这个问题后,就可以继续安装pip
命令了。
网上有的教程上说,修改/etc/sudoers
这个文件,至少在本文的范围内,这个方案是不生效的。而且修改错误的话,会造成mac
系统奔溃,千万别乱改这个文件。
设置alias
,切换pip2
和pip3
正常安装了python2
的pip
之后,依然要设置~/.bash_profile
文件。添加pip2
和pip3
的切换语句如下:
alias pip2='/usr/local/bin/pip'
alias pip3='/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3.7'
alias pip='pip2'
这样的话,给python2
安装库的时候,就使用pip2 install
。而给python3
安装库文件的时候,语句就是pip3 install
了。默认的pip
就是pip2
,注意和python
的默认值切换保持一致。
总体的代码
关键文件还是:~/.bash_profile
。目前,其关键代码如下:
alias python2='/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7'
alias python3='/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7'
alias pip2='/usr/local/bin/pip'
alias pip3='/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3.7'
alias python='python2'
alias pip='pip2'
alias sudo='sudo '
说明:
sudo
别买是为了识别其它别名而设置的。python
别名和pip
别名,要成对切换,版本一一对应。python2
、python3
、pip2
、pip3
的具体位置,请根据实际情况修改。可能用到的查找语句是:find
、which
或者whereis
。
升级pip
两个pip
也是各自升级自己的pip
。
sudo pip2 install --upgrade pip
sudo pip3 install --upgrade pip
pip2 --version
pip3 --version
pip
升级命令
这里附带pip
的升级命令,用者自取。
python -m pip install --upgrade pip
总结
看似简单的几组python
命令,实则需要特殊注意和特殊设置才能正常使用。更多苏南大叔提供的python
相关文字,请点击下面的链接查看。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。