由於Centos7默認安裝了python2.7.5版本,因此想安裝python 3.X版本就需要特殊處理。
詳情可以參考南宮羽香的技術博客原文:https://www.cnblogs.com/lclq/p/5620196.html
和憂臣解讀的技術博客原文:https://www.cnblogs.com/anxminise/p/9650206.html
一、准備階段
1.查看是否已經安裝Python
Centos7默認安裝了python2.7.5 因為一些命令要用它比如yum 它使用的是python2.7.5。
使用python -V命令查看一下是否安裝Python:
然后查看一下Python可執行文件的位置:
進入到bin目錄:
可以看到可執行文件python指向python2,python2又指向python2.7也就是說Python命令執行的系統預裝的Python2.7。
要安裝Python的其他版本先執行mv python python.bak命令備份python文件。
2.安裝新版本的Python
下載Python新版本https://www.python.org/downloads/source/
可以看到截止到目前,最新版本為3.10.0版本是2121.10.4發布的。
下載.tar.xz包就可以了。其實下面的2個包其一都可以使用
Python-3.10.0.tgz (這個不是編譯過的東西,不能解壓之后直接使用)
Python-3.10.0.tar.xz (這個是pthon的源碼)
將下載的tgz包通過Xftp等工具上傳到Linux服務器。
注:下文中是用3.7.0版本作為示例的。
或者執行wget命令直接下載到服務器:
cd /home/ #回到用戶目錄
mkdir myhome #創建文件夾myhome
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz #下載3.7.0版本
tar -xvJf Python-3.7.0.tar.xz #解壓縮
解壓縮之后該目錄下出現Python-3.7.0文件夾,進入到文件夾下執行編譯安裝。
二、安裝階段
1.安裝編譯相關工具
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
2.編譯安裝
mkdir /usr/local/python3 #創建編譯安裝目錄
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install
3.創建軟連接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
4.驗證是否成功
python3 -V
pip3 -V
---------------------------------------------------------------------------------------------------------------------------
華麗的分割線
---------------------------------------------------------------------------------------------------------------------------
三、其他相關
執行 ./configure --prefix=/usr/local/python/python3 命令。./configure命令執行完畢之后創建一個文件creating Makefile,供下面的make命令使用 執行make install之后就會把程序安裝到我們指定的目錄中去。
Configure是一個可執行腳本,它有很多選項,在待安裝的源碼路徑下使用命令./configure –help輸出詳細的選項列表。
其中--prefix選項是配置安裝的路徑,如果不配置該選項,安裝后可執行文件默認放在/usr /local/bin,庫文件默認放
在/usr/local/lib,配置文件默認放在/usr/local/etc,其它的資源文件放在/usr /local/share,比較凌亂。
如果配置--prefix,如:
./configure --prefix=/usr/local/test
可以把所有資源文件放在/usr/local/test的路徑中,不會雜亂。
用了—prefix選項的另一個好處是卸載軟件或移植軟件。當某個安裝的軟件不再需要時,只須簡單的刪除該安裝目錄,
就可以把軟件卸載得干干凈凈;移植軟件只需拷貝整個目錄到另外一個機器即可(相同的操作系統)。
當然要卸載程序,也可以在原來的make目錄下用一次make uninstall,但前提是make文件指定過uninstall。
然后執行make、make install命令。
安裝成功之后進入到python3文件夾可以看到Python的可執行文件目錄、lib目錄等相關目錄。
執行ln -s /usr/local/python/python3/bin/python3 /usr/bin/python命令創建軟連接。執行python -V查看Python是否安裝成功。
安裝成功:
3.修改yum配置文件
因為yum使用python2,因此替換為python3后可能無法正常工作,繼續使用這個python2.7.5
因此修改yum配置文件(vi /usr/bin/yum)。
把文件頭部的#!/usr/bin/python改成#!/usr/bin/python2.7保存退出即可。
因為yum使用python2,因此替換為python3后可能無法正常工作,繼續使用這個python2.7.5因此修改yum配置文件(vi /usr/bin/yum)。把文件頭部的#!/usr/bin/python改成#!/usr/bin/python2.7保存退出即可