Ubuntu中安裝指定Python版本方法詳解(理論上各版本通用)
前言
此方法理論上講適用于所有Ubuntu版本(可能太老的不行)本文章中寫的是18.04的,之前我在16.04,20.04上均安裝成功
我們首先查看一下當前系統(tǒng)自帶的Python版本及指向:
ls -l /usr/bin | grep python

從上圖可以看出是我們輸入python3指向的是Python3.6的版本
我們再輸入條命令:python3 試試:

就進入了Python命令行運行方式,可以看到我們的Python具體版本為3.6.9的,然后我們輸入:exit(); 然后回車就退出了命令行運行方式
下載Python
下載鏈接:https://www.python.org/ftp/python/
自己找到需要的版本(我這里以安裝3.8.5版本為例子)
往里面翻找到這個就好了哈

在Ubuntu里我們需要下載安裝Python到自己指定的路徑(我這里直接在當前用戶目錄下了:cd ~)
然后我們復制剛剛自己需要的版本的下載鏈接,在Ubuntu里輸入命令:
sudo wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz

安裝Python(方法一:默認安裝路徑)
解壓安裝包到當前目錄下并且進入:
sudo tar -zxvf Python-3.8.5.tgz -C ~ cd Python-3.8.5
然后我們進行初始化:
sudo ./configure
注意!
如果你輸入這條命令后出現(xiàn)下圖錯誤的:
輸入以下命令安裝一下編譯環(huán)境:
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev如果這里沒報錯,而是后面make編譯的時候報錯的話,也一樣輸入這條命令即可解決
完成后再編譯測試安裝:(其實sudo make test這條不輸入也沒事,只是測試一下,而且這條時間比較久,可能要用5-20分鐘,后面安裝不成功的時候再輸入查看問題也行)
sudo make sudo make test sudo make install
好了,安裝完了
小提示:這時候Python已經(jīng)安裝完成,可執(zhí)行文件在/usr/local/bin下,庫文件在/usr/local/lib下,配置文件在/usr/local/include下,其他資源文件在/usr/local/share下,大家用Pycharm等編輯器使用Python時就用這些路徑
此時你會發(fā)現(xiàn),我們輸入命令:python3 還是出現(xiàn)的python3.6.9,但是你試著嘗試輸入:python3.8 出現(xiàn)的就是我們剛剛安裝的python3.8.5版本

(欲知后事如何,請翻到本文最后,現(xiàn)在講第二種安裝方法)
安裝Python(方法二:自定義安裝路徑)
這里按同樣,解壓安裝包到當前目錄下并且進入:
sudo tar -zxvf Python-3.8.5.tgz -C ~ cd Python-3.8.5
然后我們進行和方法一不一樣的初始化:
./configure --prefix=/usr/local/python3.8.5
解釋:
--prefix后面的參數(shù)為指定安裝路徑注意:如果這里初始化有問題則與方法一的解決方式一樣
后面和上面方法一安裝過程一樣,完成后再編譯測試安裝:
sudo make sudo make test sudo make install
然后我們需要添加一下環(huán)境變量:
PATH=$PATH:$HOME/bin:/usr/local/python3.8.5/bin
好了,安裝完了(大家可以輸入:echo $PATH 查看一下環(huán)境變量有沒有添加進去)
小提示:這時候Python已經(jīng)安裝完成,可執(zhí)行文件在/usr/local/python3.8.5/bin下,庫文件在/usr/local/python3.8.5/lib下,配置文件在/usr/local/python3.8.5/include下,其他資源文件在/usr/local/python3.8.5/share下,大家用Pycharm等編輯器使用Python時就用這些路徑
然后就和方法一的問題一樣,我們輸入命令:python3 還是出現(xiàn)的python3.6.9,但是你試著嘗試輸入:python3.8 出現(xiàn)的就是我們剛剛安裝的python3.8.5版本,接下來講更新Python默認指向
更新命令‘python’默認指向為我們所安裝的版本
我們回到本文最開頭的查看Python指向命令:
ls -l /usr/bin | grep python
因為我們現(xiàn)在啥也沒設(shè)置,所以輸入了還是和上面顯示的一樣,然后我們現(xiàn)在有兩種情況:
你安裝的是對應你這個系統(tǒng)的Python當前版本號你安裝的是其他Python版本號
什么是Python當前版本號,什么是其他版本號?
現(xiàn)在以我這里為例,我們從下圖可得:
我們輸入命令:
python3對應的版本為python3.6.9,那么,我們安裝的版本如果是python3.6.11,或者是python3.6.5啥的,只要是在這個3.6的版本內(nèi)就是當前版本號,本文安裝的版本號為3.8,所以安裝的是其他版本號
兩種情況有不同的更新指向方式:
方式一:當前版本號直接將指向鏈接更新
刪除原有鏈接:
sudo rm /usr/bin/python
建立新鏈接:
sudo ln -s /usr/bin/python3.8 /usr/bin/python3 sudo ln -s /usr/bin/python3.8 /usr/bin/python
解釋:當中的python3.8就是我們上面在輸入python3.8的時候就出現(xiàn)我們安裝的python3.8.5的版本嘛,然后這里改為輸入python3和python都指向我們的python3.8.5
然后輸入python3或者python就會發(fā)現(xiàn)已經(jīng)好了,方式二就不用再進行了
方式二:指向其他版本號
因為我們安裝的Python3.8是不同于系統(tǒng)自帶python的版本號,不在/usr/bin下而在/usr/local/bin或者/usr/local/python3.8.5/bin下(取決于前面執(zhí)行的是./configure還是./configure --prefix=/usr/local/python3.8.5,因此需要先加一條軟鏈接并且把之前的python命令改為python.bak,同時pip也需要更改
若Python3.8安裝時,執(zhí)行的是./configure,則依次輸入:
# 將原python與python3命令改為python.bak與python.bak sudo mv /usr/bin/python /usr/bin/python.bak sudo mv /usr/bin/python3 /usr/bin/python3.bak # 將我們剛裝的python3.8.5指定運行命令為python與python3 sudo ln -s /usr/local/bin/python3 /usr/bin/python sudo ln -s /usr/local/bin/python3 /usr/bin/python3 # 將原pip和pip3命令改為pip.bak與pip3.bak sudo mv /usr/bin/pip /usr/bin/pip.bak sudo mv /usr/bin/pip3 /usr/bin/pip3.bak # 將我們剛裝的python3.8.5的pip指定運行命令為pip與pip3 sudo ln -s /usr/local/bin/pip3 /usr/bin/pip sudo ln -s /usr/local/bin/pip3 /usr/bin/pip3
注意:如果你的系統(tǒng)不自帶Python2,則第一句與第五句命令會報錯,或者你的系統(tǒng)不自帶Python3,則第二句與第六句命令會報錯,pip也一樣,這是正常的,不用理會,報錯內(nèi)容如下(報錯意思其實就是你沒有這個):
上面的思路梳理一下:
更改完成之后,現(xiàn)在輸入
python或者是python3將會指向python3.8.5輸入
python.bak或者是python3.bak將會分別指向系統(tǒng)自帶的python2與python3輸入
pip或者是pip3將會指向python3.8.5的將會指向pip輸入
pip.bak或者是pip3.bak將會分別指向系統(tǒng)自帶的python2與python3的pip
若Python3.8安裝時,執(zhí)行的是./configure --prefix=/usr/local/python3.8.5,則依次輸入:
# 將原python與python3命令改為python.bak與python.bak sudo mv /usr/bin/python /usr/bin/python.bak sudo mv /usr/bin/python3 /usr/bin/python3.bak # 將我們剛裝的python3.8.5指定運行命令為python與python3 sudo ln -s /usr/local/python3.8.5/bin/python3.8 /usr/bin/python sudo ln -s /usr/local/python3.8.5/bin/python3.8 /usr/bin/python3 # 將原pip和pip3命令改為pip.bak與pip3.bak sudo mv /usr/bin/pip /usr/bin/pip.bak sudo mv /usr/bin/pip3 /usr/bin/pip3.bak # 將我們剛裝的python3.8.5的pip指定運行命令為pip與pip3 sudo ln -s /usr/local/python3.8.5/bin/pip3 /usr/bin/pip sudo ln -s /usr/local/python3.8.5/bin/pip3 /usr/bin/pip3
這里的話呢,上面已經(jīng)解釋過了
總結(jié)
到此這篇關(guān)于Ubuntu中安裝指定Python版本(理論上各版本通用)的文章就介紹到這了,更多相關(guān)Ubuntu安裝指定Python版本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)自動登錄跳轉(zhuǎn)頁面并獲取信息
這篇文章主要為大家詳細介紹了如何使用python實現(xiàn)自動登錄跳轉(zhuǎn)頁面并獲取信息功能,文中的示例代碼講解詳細,有需要的小伙伴可以跟隨小編一起學習一下2025-05-05
面向?qū)ο缶幊蹋∣OP)是一種程序設(shè)計思想,以類和對象創(chuàng)建模型以描述真實世界,可使程序維護和擴展更簡單,提高程序開發(fā)效率,面向?qū)ο蠛兔嫦蜻^程是兩種主要的編程思想,面向?qū)ο蟮某绦蛞詫ο笞鳛槌绦虻幕締卧?/div> 2024-10-10
Pandas批量統(tǒng)一雜亂日期格式為XX月XX日的實現(xiàn)方法
在日常Python數(shù)據(jù)分析、Excel數(shù)據(jù)處理場景中,經(jīng)常會遇到表格日期格式雜亂不統(tǒng)一的問題,數(shù)據(jù)中同時存在時間戳日期、年.月.日字符串、月.日簡寫、空值等多種格式,本文將提供一套通用、健壯的解決方案:通過全字符串讀取原始數(shù)據(jù)規(guī)避格式丟失問題,需要的朋友可以參考下2026-05-05
django使用定時任務(wù)django_apscheduler的實現(xiàn)
定時任務(wù)無論是個人開發(fā)還是企業(yè)業(yè)務(wù)都是需要的,本文主要介紹了django使用定時任務(wù)django_apscheduler的實現(xiàn),減少請求時需要用戶等待的時間,感興趣的可以了解一下2021-08-08
Python數(shù)據(jù)分析之?Pandas?Dataframe修改和刪除及查詢操作
這篇文章主要介紹了Python數(shù)據(jù)分析之?Pandas?Dataframe修改和刪除及查詢操作的相關(guān)資料,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05
python監(jiān)測當前聯(lián)網(wǎng)狀態(tài)并連接的實例
今天小編就為大家分享一篇python監(jiān)測當前聯(lián)網(wǎng)狀態(tài)并連接的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12最新評論




