Ubuntu16.04 安裝多個(gè)python版本的問(wèn)題及解決方法
Ubuntu16.04自帶python2.7與python3.5,某個(gè)項(xiàng)目編譯卻要求python版本大于等于3.7,遂考慮在原系統(tǒng)基礎(chǔ)上再安裝python3.8。
1 下載安裝python3.8
Ubuntu 官方 apt 庫(kù)中還未收錄 python 3.8,因此添加 deadsnakes PPA 源安裝python3.8,否則會(huì)出現(xiàn)以下錯(cuò)誤
錯(cuò)誤1
:
E: 無(wú)法定位軟件包 python3.8
E: 無(wú)法按照 glob ‘python3.8' 找到任何軟件包
E: 無(wú)法按照正則表達(dá)式 python3.8 找到任何軟件包
解決方法:運(yùn)行以下指令安裝python3.8
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.8
此時(shí)python3版本還是指向python3.5,可以輸入
cd /usr/bin && ll
查看
2 修改python3默認(rèn)指向
sudo rm python3 sudo ln -s python3.8 python3
查看python版本驗(yàn)證修改成功:
$ python3 --version python3.8.9
3 無(wú)法打開(kāi)終端解決方案
按1、2步驟安裝完python3后,一般無(wú)法打開(kāi)終端
錯(cuò)誤2
:
$ gnome-terminal
Traceback (most recent call last):
File "/usr/bin/gnome-terminal", line 9, in <module>
from gi.repository import GLib, Gio
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
from . import _gi
ImportError: cannot import name '_gi'
解決方法:
cd /usr/lib/python3/dist-packages/gi/ # 下面的35 改成38 表示從py3.5改到py3.8 sudo mv _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-38m-x86_64-linux-gnu.so sudo mv _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-38m-x86_64-linux-gnu.so
接下來(lái)修改
sudo gedit /usr/bin/gnome-terminal
將python3改為python
問(wèn)題解決。
4 python版本的卸載
sudo apt remove python3.8 sudo apt autoremove python3.8
5 python多版本管理
參考http://www.dbjr.com.cn/article/221437.htm,值得注意,僅按該博文的方式配置仍會(huì)打不開(kāi)終端,建議先按照本文方式配置后再添加管理。
將 python 各版本添加到 update-alternatives
$ which python3.8 /usr/bin/python3.8 $ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 $ which python3.5 /usr/bin/python3.5 $ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2
通過(guò)下面配置切換版本
$ sudo update-alternatives --config python3 There are 2 choices for the alternative python3 (providing /usr/bin/python3). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/python3.5 2 auto mode 1 /usr/bin/python3.5 2 manual mode 2 /usr/bin/python3.8 1 manual mode Press <enter> to keep the current choice[*], or type selection number: 2
6 升級(jí)pip3/pip
對(duì)于初次安裝python的Ubuntu系統(tǒng)而言,pip等級(jí)較低,這種情況下進(jìn)行pip install高版本庫(kù)可能會(huì)出現(xiàn)一系列的問(wèn)題,例如:
錯(cuò)誤3
:AttributeError: module ‘platform' has no attribute ‘linux_distribution'
解決方法:對(duì)pip版本進(jìn)行升級(jí)
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py sudo python3 get-pip.py --force-reinstall
到此這篇關(guān)于Ubuntu16.04 安裝多個(gè)python版本的文章就介紹到這了,更多相關(guān)Ubuntu16.04 安裝python內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python利用random生成一個(gè)列表內(nèi)的隨機(jī)數(shù)
這篇文章主要介紹了詳解Python利用random生成一個(gè)列表內(nèi)的隨機(jī)數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Django結(jié)合使用Scrapy爬取數(shù)據(jù)入庫(kù)的方法示例
這篇文章主要介紹了Django結(jié)合使用Scrapy爬取數(shù)據(jù)入庫(kù)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python+opencv像素的加減和加權(quán)操作的實(shí)現(xiàn)
這篇文章主要介紹了python+opencv像素的加減和加權(quán)操作的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python二次規(guī)劃和線性規(guī)劃使用實(shí)例
這篇文章主要介紹了Python二次規(guī)劃和線性規(guī)劃使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python實(shí)現(xiàn)王者榮耀自動(dòng)刷金幣的完整步驟
這篇文章主要介紹了Python實(shí)現(xiàn)王者農(nóng)藥自動(dòng)刷金幣的完整步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01Java中MultipartFile與File互轉(zhuǎn)的實(shí)現(xiàn)
本文主要介紹了Java中MultipartFile與File互轉(zhuǎn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03