最近在Ubuntu上使用sudo pip install 命令时候发现一个很严重的问题。
horsetif@horsetif:~$ pip3 -V
pip 10.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
horsetif@horsetif:~$ sudo pip3 -V
[sudo] password for horsetif:
pip 10.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
由于我安装了anaconda3,里面配置的是python 3.6,然而Ubuntu中默认的配置为python3.5。
我现在已经把python默认指令链接到anaconda3中。
这样一个非常严重的问题在于,如果我现在用pip3 install or sudo pip3 install 来安装,安装的位置一定是python3.5对应的位置。这里的pip一定为python3.5的位置。
我希望默认使用pip install or sudo pip install or pip3 install 全部对应与 anaconda3中的pip位置。
1,pip 位置修改
网上有各种方法,主要的方法就是把anaconda3中的pip指令移动到/usr/bin/中。但是在我这里并不能很好的修改。
我使用的方法:
sudo gedit ~/.bashrc
#在最后一行添加如下命令:
alias pip=/home/horsetif/anaconda3/bin/pip
alias pip3=/home/horsetif/anaconda3/bin/pip
#保存退出后,使用如下更新命令
source ~/.bashrc
最终结果如下:
horsetif@horsetif:~$ pip -V
pip 10.0.1 from /home/horsetif/anaconda3/lib/python3.6/site-packages/pip (python 3.6)
horsetif@horsetif:~$ pip3 -V
pip 10.0.1 from /home/horsetif/anaconda3/lib/python3.6/site-packages/pip (python 3.6)
2,sudo pip 位置修改
但是像上面修改之后,在sudo位置上还是没有办法做到真正的修改。模拟网上的方法,我们把anaconda3中的pip移动到sbin中,但是貌似也没有一个很好的结果。
有一个方法是进入sudo su 模式下,在/root/bashrc 中修改,像上面一样,但是返回后也没有一个正确的结果。最终,我们决定修改etc目录。
sudo gedit /etc/profile
#在最后一行添加如下命令:
alias pip=/home/horsetif/anaconda3/bin/pip
alias pip3=/home/horsetif/anaconda3/bin/pip
#保存退出后,使用如下更新命令
source /etc/profile
最终结果如下:
horsetif@horsetif:~$ sudo pip3 -V
pip 10.0.1 from /home/horsetif/anaconda3/lib/python3.6/site-packages/pip (python 3.6)
horsetif@horsetif:~$ sudo pip -V
pip 10.0.1 from /home/horsetif/anaconda3/lib/python3.6/site-packages/pip (python 3.6)
成功了!