欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ubuntu中安裝指定Python版本方法詳解(理論上各版本通用)

 更新時(shí)間:2023年06月14日 11:39:57   作者:松種  
現(xiàn)在基于linux的發(fā)行版本有很多,有centos,ubuntu等,一般基于linux的衍生系統(tǒng)至少都安裝了Python2版本,但是現(xiàn)在Python已經(jīng)是3.x版本大行其道了,這篇文章主要給大家介紹了關(guān)于Ubuntu中安裝指定Python版本方法的相關(guān)資料,理論上各版本通用,需要的朋友可以參考下

前言 

此方法理論上講適用于所有Ubuntu版本(可能太老的不行)本文章中寫的是18.04的,之前我在16.04,20.04上均安裝成功

我們首先查看一下當(dāng)前系統(tǒng)自帶的Python版本及指向:

ls -l /usr/bin | grep python

請(qǐng)?zhí)砑訄D片描述

從上圖可以看出是我們輸入python3指向的是Python3.6的版本

我們?cè)佥斎霔l命令:python3 試試:

請(qǐng)?zhí)砑訄D片描述

就進(jìn)入了Python命令行運(yùn)行方式,可以看到我們的Python具體版本為3.6.9的,然后我們輸入:exit(); 然后回車就退出了命令行運(yùn)行方式

下載Python

下載鏈接:https://www.python.org/ftp/python/

自己找到需要的版本(我這里以安裝3.8.5版本為例子)

往里面翻找到這個(gè)就好了哈

請(qǐng)?zhí)砑訄D片描述

Ubuntu里我們需要下載安裝Python到自己指定的路徑(我這里直接在當(dāng)前用戶目錄下了:cd ~

然后我們復(fù)制剛剛自己需要的版本的下載鏈接,在Ubuntu里輸入命令:

sudo wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz

請(qǐng)?zhí)砑訄D片描述

安裝Python(方法一:默認(rèn)安裝路徑)

解壓安裝包到當(dāng)前目錄下并且進(jìn)入:

sudo tar -zxvf Python-3.8.5.tgz -C ~
cd Python-3.8.5

然后我們進(jìn)行初始化:

sudo ./configure

注意!

如果你輸入這條命令后出現(xiàn)下圖錯(cuò)誤的:

請(qǐng)?zhí)砑訄D片描述

輸入以下命令安裝一下編譯環(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

如果這里沒報(bào)錯(cuò),而是后面make編譯的時(shí)候報(bào)錯(cuò)的話,也一樣輸入這條命令即可解決

完成后再編譯測(cè)試安裝:(其實(shí)sudo make test這條不輸入也沒事,只是測(cè)試一下,而且這條時(shí)間比較久,可能要用5-20分鐘,后面安裝不成功的時(shí)候再輸入查看問題也行)

sudo make
sudo make test
sudo make install

好了,安裝完了

小提示:這時(shí)候Python已經(jīng)安裝完成,可執(zhí)行文件在/usr/local/bin下,庫(kù)文件在/usr/local/lib下,配置文件在/usr/local/include下,其他資源文件在/usr/local/share下,大家用Pycharm等編輯器使用Python時(shí)就用這些路徑

此時(shí)你會(huì)發(fā)現(xiàn),我們輸入命令:python3 還是出現(xiàn)的python3.6.9,但是你試著嘗試輸入:python3.8 出現(xiàn)的就是我們剛剛安裝的python3.8.5版本

請(qǐng)?zhí)砑訄D片描述

(欲知后事如何,請(qǐng)翻到本文最后,現(xiàn)在講第二種安裝方法)

安裝Python(方法二:自定義安裝路徑)

這里按同樣,解壓安裝包到當(dāng)前目錄下并且進(jìn)入:

sudo tar -zxvf Python-3.8.5.tgz -C ~
cd Python-3.8.5

然后我們進(jìn)行和方法一不一樣的初始化:

./configure --prefix=/usr/local/python3.8.5

解釋:--prefix后面的參數(shù)為指定安裝路徑

注意:如果這里初始化有問題則與方法一的解決方式一樣

后面和上面方法一安裝過(guò)程一樣,完成后再編譯測(cè)試安裝:

sudo make
sudo make test
sudo make install

然后我們需要添加一下環(huán)境變量:

PATH=$PATH:$HOME/bin:/usr/local/python3.8.5/bin

好了,安裝完了(大家可以輸入:echo $PATH 查看一下環(huán)境變量有沒有添加進(jìn)去)

小提示:這時(shí)候Python已經(jīng)安裝完成,可執(zhí)行文件在/usr/local/python3.8.5/bin下,庫(kù)文件在/usr/local/python3.8.5/lib下,配置文件在/usr/local/python3.8.5/include下,其他資源文件在/usr/local/python3.8.5/share下,大家用Pycharm等編輯器使用Python時(shí)就用這些路徑

然后就和方法一的問題一樣,我們輸入命令:python3 還是出現(xiàn)的python3.6.9,但是你試著嘗試輸入:python3.8 出現(xiàn)的就是我們剛剛安裝的python3.8.5版本,接下來(lái)講更新Python默認(rèn)指向

更新命令‘python’默認(rèn)指向?yàn)槲覀兯惭b的版本

我們回到本文最開頭的查看Python指向命令:

ls -l /usr/bin | grep python

因?yàn)槲覀儸F(xiàn)在啥也沒設(shè)置,所以輸入了還是和上面顯示的一樣,然后我們現(xiàn)在有兩種情況:

你安裝的是對(duì)應(yīng)你這個(gè)系統(tǒng)的Python當(dāng)前版本號(hào)你安裝的是其他Python版本號(hào)

什么是Python當(dāng)前版本號(hào),什么是其他版本號(hào)?

現(xiàn)在以我這里為例,我們從下圖可得:

請(qǐng)?zhí)砑訄D片描述

我們輸入命令:python3 對(duì)應(yīng)的版本為python3.6.9,那么,我們安裝的版本如果是python3.6.11,或者是python3.6.5啥的,只要是在這個(gè)3.6的版本內(nèi)就是當(dāng)前版本號(hào),本文安裝的版本號(hào)為3.8,所以安裝的是其他版本號(hào)

兩種情況有不同的更新指向方式:

方式一:當(dāng)前版本號(hào)直接將指向鏈接更新

刪除原有鏈接:

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

解釋:當(dāng)中的python3.8就是我們上面在輸入python3.8的時(shí)候就出現(xiàn)我們安裝的python3.8.5的版本嘛,然后這里改為輸入python3python都指向我們的python3.8.5

然后輸入python3或者python就會(huì)發(fā)現(xiàn)已經(jīng)好了,方式二就不用再進(jìn)行了

方式二:指向其他版本號(hào)

因?yàn)槲覀儼惭b的Python3.8是不同于系統(tǒng)自帶python的版本號(hào),不在/usr/bin下而在/usr/local/bin或者/usr/local/python3.8.5/bin下(取決于前面執(zhí)行的是./configure還是./configure --prefix=/usr/local/python3.8.5,因此需要先加一條軟鏈接并且把之前的python命令改為python.bak,同時(shí)pip也需要更改

Python3.8安裝時(shí),執(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指定運(yùn)行命令為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指定運(yùn)行命令為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,則第一句與第五句命令會(huì)報(bào)錯(cuò),或者你的系統(tǒng)不自帶Python3,則第二句與第六句命令會(huì)報(bào)錯(cuò),pip也一樣,這是正常的,不用理會(huì),報(bào)錯(cuò)內(nèi)容如下(報(bào)錯(cuò)意思其實(shí)就是你沒有這個(gè)):

請(qǐng)?zhí)砑訄D片描述

上面的思路梳理一下:

更改完成之后,現(xiàn)在輸入python或者是python3將會(huì)指向python3.8.5

輸入python.bak或者是python3.bak將會(huì)分別指向系統(tǒng)自帶的python2python3

輸入pip或者是pip3將會(huì)指向python3.8.5的將會(huì)指向pip

輸入pip.bak或者是pip3.bak將會(huì)分別指向系統(tǒng)自帶的python2python3pip

Python3.8安裝時(shí),執(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指定運(yùn)行命令為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指定運(yùn)行命令為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)解釋過(guò)了

總結(jié)

到此這篇關(guān)于Ubuntu中安裝指定Python版本(理論上各版本通用)的文章就介紹到這了,更多相關(guān)Ubuntu安裝指定Python版本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Python中生成隨機(jī)數(shù)據(jù)的示例詳解

    詳解Python中生成隨機(jī)數(shù)據(jù)的示例詳解

    在日常工作編程中存在著各種隨機(jī)事件,同樣在編程中生成隨機(jī)數(shù)字的時(shí)候也是一樣。每當(dāng)在?Python?中生成隨機(jī)數(shù)據(jù)、字符串或數(shù)字時(shí),最好至少大致了解這些數(shù)據(jù)是如何生成的。所以本文將詳細(xì)為大家講解一下Python是如何生成隨機(jī)數(shù)據(jù),需要的可以參考一下
    2022-04-04
  • tensorflow實(shí)現(xiàn)殘差網(wǎng)絡(luò)方式(mnist數(shù)據(jù)集)

    tensorflow實(shí)現(xiàn)殘差網(wǎng)絡(luò)方式(mnist數(shù)據(jù)集)

    這篇文章主要介紹了tensorflow實(shí)現(xiàn)殘差網(wǎng)絡(luò)方式(mnist數(shù)據(jù)集),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Pytest中skip skipif跳過(guò)用例詳解

    Pytest中skip skipif跳過(guò)用例詳解

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Pytest中skip skipif跳過(guò)用例展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python機(jī)器學(xué)習(xí)應(yīng)用之基于天氣數(shù)據(jù)集的XGBoost分類篇解讀

    Python機(jī)器學(xué)習(xí)應(yīng)用之基于天氣數(shù)據(jù)集的XGBoost分類篇解讀

    XGBoost是一個(gè)優(yōu)化的分布式梯度增強(qiáng)庫(kù),旨在實(shí)現(xiàn)高效,靈活和便攜。它在?Gradient?Boosting?框架下實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法。XGBoost提供并行樹提升(也稱為GBDT,GBM),可以快速準(zhǔn)確地解決許多數(shù)據(jù)科學(xué)問題
    2022-01-01
  • Tensorflow2.10實(shí)現(xiàn)圖像分割任務(wù)示例詳解

    Tensorflow2.10實(shí)現(xiàn)圖像分割任務(wù)示例詳解

    這篇文章主要為大家介紹了Tensorflow2.10實(shí)現(xiàn)圖像分割任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • python smtplib模塊自動(dòng)收發(fā)郵件功能(一)

    python smtplib模塊自動(dòng)收發(fā)郵件功能(一)

    這篇文章主要為大家詳細(xì)介紹了python smtplib模塊自動(dòng)收發(fā)郵件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python制作數(shù)據(jù)預(yù)測(cè)集成工具(值得收藏)

    Python制作數(shù)據(jù)預(yù)測(cè)集成工具(值得收藏)

    這篇文章主要介紹了Python如何制作數(shù)據(jù)預(yù)測(cè)集成工具,幫助大家進(jìn)行大數(shù)據(jù)預(yù)測(cè),感興趣的朋友可以了解下
    2020-08-08
  • Pandas 模糊查詢與替換的操作

    Pandas 模糊查詢與替換的操作

    這篇文章主要介紹了Pandas 模糊查詢與替換的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python異步存儲(chǔ)數(shù)據(jù)詳解

    python異步存儲(chǔ)數(shù)據(jù)詳解

    這篇文章主要為大家詳細(xì)介紹了python異步存儲(chǔ)數(shù)據(jù)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Scrapy-redis爬蟲分布式爬取的分析和實(shí)現(xiàn)

    Scrapy-redis爬蟲分布式爬取的分析和實(shí)現(xiàn)

    所謂的scrapy-Redis實(shí)際上就是scrapy+redis,其中對(duì)redis的操作采用redis-py客戶端。下面這篇文章詳細(xì)介紹了Scrapy-redis爬蟲分布式爬取的分析和實(shí)現(xiàn),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-02-02

最新評(píng)論