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,發現已經升級到最新版本了。