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 <module>
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,发现已经升级到最新版本了。