ubuntu16.04安裝python3.6.7遇到的坑記錄

賈富程發表於2018-12-31

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)

ubuntu16.04安裝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
複製程式碼

以下命令可以檢視結果

ubuntu16.04安裝python3.6.7遇到的坑記錄

現在再輸入python3,已經是python3.6.7了

ubuntu16.04安裝python3.6.7遇到的坑記錄

安裝過python3.6.7之後現在還要升級pip3

sudo apt-get install python3-pip  #如果已經安裝了pip3忽略這一條
sudo pip3 install --upgrade pip
複製程式碼

檢視是否安裝成功:

ubuntu16.04安裝python3.6.7遇到的坑記錄

問題來了,按照提示升級了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,發現已經升級到最新版本了。


相關文章