溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

發(fā)布時(shí)間:2021-03-02 16:59:41 來(lái)源:億速云 閱讀:275 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

下載Python源碼

從http://www.python.org/download/根據(jù)需要的版本下載源文件。

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

例如上圖就是我在官網(wǎng)直接找到3.5.6版本的下載頁(yè)面,點(diǎn)擊的tar源碼包進(jìn)行下載。

編譯安裝

補(bǔ)充

注意編譯安裝python前最好先保證系統(tǒng)己安裝上以下庫(kù)

yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel
yum install readline-devel

解壓源碼包

tar zxvf Python-3.5.6.tgz
cd Python-3.5.6

配置選項(xiàng)

sudo ./configure --enable-optimizations --prefix=/usr/local/python-3.5.6 --with-zlib --with-readline
--enable-optimizations 為最優(yōu)安裝,建議使用這個(gè)參數(shù)。
--prefix為指定安裝的路徑

進(jìn)行編譯安裝

sudo make
sudo make install

修改Python軟鏈

默認(rèn)python命令是在/usr/bin/目錄下,需要在這里把軟鏈修改成3.5.6的版本,順便建立一個(gè)3.5.6的軟鏈。

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

上圖是原默認(rèn)軟鏈接,是python2.7的,其實(shí)它也己經(jīng)默認(rèn)建立了一個(gè)python2的軟鏈接了。

重新命名默認(rèn)python軟鏈接為python2.7以便3.5的版本成為默認(rèn)環(huán)境變量

sudo mv /usr/bin/python /usr/bin/python2.7

建立python3.5版本的軟鏈接

sudo ln -s /usr/local/python-3.5.6/bin/python3.5 /usr/bin/python

當(dāng)然,也可以不做上一步,而是將3.5版本的軟鏈接成python3之類也是可行的。

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

比如我做的就是新增python3的軟鏈接指向python3.5所在的目錄。
順便也將配置文件也做了一個(gè)軟鏈接指向:

sudo ln -s /usr/local/python-3.5.6/bin/python3.5-config /usr/bin/python3-config

補(bǔ)充

注意 如無(wú)特別需要,推薦命名成不同python的軟鏈接,因?yàn)槟銜?huì)發(fā)覺(jué)要是你直接改了原來(lái)指向舊版本的軟鏈接的話,pip,virtualenv等依賴原版本python的工具需要改它的py文件頭的環(huán)境變量。

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

如果你修改了原軟鏈接,使得python實(shí)際指向的是新版本的python的話,pip等仍依賴舊版本的工具要么重裝要么修改它py文件的首行,按實(shí)際情況重新指向你的舊版本原版本的python環(huán)境,例如此處我就可直接改成/usr/bin/python2

虛擬環(huán)境設(shè)置不同版本的python

創(chuàng)建好項(xiàng)目目錄,cd進(jìn)到目錄下。

在創(chuàng)建python虛擬環(huán)境時(shí),可以指定虛擬環(huán)境要使用的python版本,例如下命令(使用-p參數(shù)指明python解釋器的路徑):

 -p PYTHON_EXE, --python=PYTHON_EXE
 The Python interpreter to use, e.g.,
 --python=python3.5 will use the python3.5 interpreter
 to create the new environment. The default is the
 interpreter that virtualenv was installed with
 (/usr/bin/python)

例:

virtualenv -p /usr/bin/python2 ENV2.7 #創(chuàng)建python2.7的虛擬環(huán)境
virtualenv -p /usr/bin/python3 ENV3.5 #創(chuàng)建python3.5的虛擬環(huán)境
virtualenv --python=python3 my-env #創(chuàng)建python3.5的虛擬環(huán)境

之所以裝多個(gè)版本的python,有一個(gè)原因很重要,也就是想要使用virtualenv創(chuàng)建隔離的虛擬環(huán)境的時(shí)候指定不同python版本。但是前面我進(jìn)行編譯安裝的時(shí)候沒(méi)有指定編譯安裝上zlib庫(kù),就會(huì)出現(xiàn)以下如圖問(wèn)題:

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

報(bào)找不到zlib模塊錯(cuò)誤。

所以最好還是系統(tǒng)原環(huán)境變量安裝成高版本的python,或進(jìn)行python編譯安裝的時(shí)候記得加上--with-zlib。
最好--with-zlib-devel和readline也帶上。

當(dāng)然,補(bǔ)救辦法也是有的,就是重新進(jìn)行編譯安裝。
(重新進(jìn)行本文最開(kāi)始的操作,當(dāng)然本文最開(kāi)始筆者己經(jīng)補(bǔ)充更正過(guò)了編譯安裝時(shí)的配置。)

筆者由于重新編譯后仍然報(bào)zlib模塊錯(cuò)誤,筆者并不想弄污原來(lái)python2.7的環(huán)境,所以決定嘗試virtualenv下載源碼來(lái)使用,而zlib也進(jìn)行編譯安裝來(lái)讓python3也能正常導(dǎo)入zlib模塊。

下載zlib模塊并進(jìn)行編譯安裝

官網(wǎng)http://www.zlib.net/下載最新版本的zlib源碼文件,我下載的是zlib-1.2.11.tar.gz

安裝zlib:

tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11

建議默認(rèn)路徑安裝,編譯三部曲:

./configure
make
make install

python導(dǎo)入zlib

如下圖,編譯安裝完成zlib后,進(jìn)python3測(cè)試己經(jīng)可能正常導(dǎo)入zlib包。

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

zlib安裝完后,libz.a在/usr/local/lib/,opensuse中zlib.h默認(rèn)放在/usr/local/include/中。
其它linux的zlib.h文件一般在/usr/include中。

重新編譯python并指定zlib

如果還發(fā)生少數(shù)導(dǎo)入不成功,或你想直接軟鏈接升級(jí)python舊版本的,可能需要重新編譯python。

進(jìn)入Python源碼文件目錄,重新編譯Python

sudo ./configure --enable-optimizations --prefix=/usr/local/python-3.5.6 --with-zlib=/usr/include

或者:

./configure --enable-optimizations --prefix=/usr/local/python-3.5.6 --with-zlib-dir=/usr/local/lib

都可以完成python對(duì)zlib庫(kù)的支持,在python源碼中直接import zlib即可使用zlib了。

下載virtualenv源碼包

直接到pypi下載16.0.0版本。
tar命令進(jìn)行解壓

tar xvfz virtualenv-16.0.0.tar.gz
cd virtualenv-16.0.0

此目錄下文件如下,我們主要用到的并不是setup安裝,而是直接使用它的virtualenv.py文件。

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

virtualenv創(chuàng)建虛擬環(huán)境

在項(xiàng)目目錄下直接指定python版本及virtualenv.py的絕對(duì)路徑進(jìn)行創(chuàng)建虛擬環(huán)境:

sudo python3 /home/operation/virtualenv-16.0.0/virtualenv.py py3

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

可以不進(jìn)行全局安裝,而是用戶下進(jìn)行虛擬化環(huán)境可以直接使用python3 后接virtualenv.py運(yùn)行,完美解決需求。

也可以使用原python2下的全局virtualenv來(lái)執(zhí)行,一樣可以創(chuàng)建,如:

operation@opensuse-wordpress:/work> sudo virtualenv --python=python3 my_py3_env
[sudo] password for root: 
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr/local/python-3.5.6'
New python executable in /work/my_py3_env/bin/python3
Also creating executable in /work/my_py3_env/bin/python
Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.

虛擬隔離環(huán)境目錄如下:

怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python

關(guān)于怎么在Linux系統(tǒng)中安裝多個(gè)版本的Python就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI