ubuntu16.04安装python3.6.7遇到的坑记录

ubuntu默认的应该是3.5.2,最近在学习爬虫,然后要安装mitmproxy这个抓包工具,结果最新的只支持3.6以上的版本的python,然后就开始了我漫长的填坑掉坑填坑。

我没有卸载之前的3.5.2而是直接安装3.6.7,安装命令

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
复制代码

安装完成后,我们输入python3.6验证下安装成功了没,如果如下图所示,则为安装成功。 (python3默认的是python3.5.2,现在用python3还不能直接到python3.6.7)


现在修改一下优先级,让输入python3时出来的就是python3.6.7

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
复制代码

以下命令可以查看结果


现在再输入python3,已经是python3.6.7了


安装过python3.6.7之后现在还要升级pip3

sudo apt-get install python3-pip  #如果已经安装了pip3忽略这一条
sudo pip3 install --upgrade pip
复制代码

查看是否安装成功:


问题来了,按照提示升级了pip,结果pip就用不了了

错误信息如下:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in 
    from pip import main
ImportError: cannot import name 'main'复制代码

解决方法

当然是重新安装一次pip咯

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall复制代码

还有一个办法是在网上找的,但是我的没有用

打开pip3文件,打开命令:

sudo gedit /usr/bin/pip3
复制代码

把原来的

from pip import main
if __name__ == '__main__':
    sys.exit(main())
复制代码

替换成

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())
复制代码

再次输入 pip3 -V,发现已经升级到最新版本了。


你可能感兴趣的:(ubuntu16.04安装python3.6.7遇到的坑记录)