解決linux下python多版本兼容問題?


 

環境:CentOS 7(7下默認安裝python2.7)

Pyhon3在CentOS中需要依賴一些其他的包,我們一次性用yum安裝一下:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

1、安裝python3

wget -c https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar -zxvf Python-3.5.2.tgz 
cd Python-3.5.2
./configure --prefix=/usr/local/python3 
#prefix后面是安裝路徑,可以換成自己的安裝路徑
make
make install

#當需要輸入python時直接指向python3.5,可以這樣處理:
ln -s /usr/local/python3/bin/python3 /usr/bin/python #前面換成你的安裝路徑

#ps:如果提示 ln: creating symbolic link `/usr/bin/python': File exists
#需要把原來的/usr/bin/python 通過以下命令備份一下
 mv /usr/bin/python /usr/bin/python.bak

#需要恢復原來的python指向的話:
cp /usr/bin/python.bak /usr/bin/python

另外,因為執行yum需要python2版本,所以我們還要修改yum的配置,執行:

vi /usr/bin/yum

把#! /usr/bin/python修改為#! /usr/bin/python2

理 vi /usr/libexec/urlgrabber-ext-down 文件里面的#! /usr/bin/python 也要修改為#! /usr/bin/python2

 

So,python3 and python2就同時存在了

2、安裝setuptools

下載 setuptools:

wget https://pypi.python.org/packages/32/3c/e853a68b703f347f5ed86585c2dd2828a83252e1216c1201fa6f81270578/setuptools-26.1.1.tar.gz#md5=0744ee90ad266fb117d59f94334185d0

解壓:

  tar zxvf setuptools-26.1.1.tar.gz

進入該目錄:

cd  setuptools-26.1.1

python3 編譯安裝:

python setup.py build

python setup.py install

報錯:RuntimeError: Compression requires the (missing) zlib module

缺少 zlib模塊導致安裝失敗

解決方式:

# yum install zlib-devel 

下載成功后,進入python3.5.2的目錄,重新編譯安裝

也就是:

cd Python-3.5.2 ./configure --prefix=/usr/local/python3 #prefix后面是安裝路徑,可以換成自己的安裝路徑 make make install

然后:
cd setuptools-26.1.1
繼續:

python setup.py build

python setup.py install

 完事!

3、安裝pip

下載pip:

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

 

解壓:

tar zxvf pip-9.0.1.tar.gz

cd pip-9.0.1

python setup.py build

python setup.py install

此時pip是已被安裝到了/usr/local/python3/bin目錄中

這時候我們可以搞一個軟連接,這樣我們就可以直接使用這個東東了

ln -s /usr/local/python3/bin/pip3.5 /usr/bin/pip3  #當需要輸入pip3時直接指向python3中的pip
這樣就可以跟python2中的pip區分開來了,想用哪個pip就調哪個,pip 就是默認調用python2中的pip,pip3就是調用python3中的pip

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM