CentOS公升級Python詳解

2021-10-24 03:10:12 字數 3168 閱讀 4100

wget
tar -zxvf python-3.5.2.tgz
進入解壓縮後的目錄,安裝配置:

cd python-3.5.2/

./configure

執行 ./configure 時,如果報錯:

configure: error: no acceptable c compiler found in $path

說明沒有安裝合適的編譯器。這時,需要安裝/公升級 gcc 及其它依賴包。

yum install

make gcc gcc-c++ zlib*

zlib*是編譯安裝python3.6以上版本的時候用到。

完成之後,重新執行:

./configure
編譯 & 安裝

配置完成之後,就可以編譯了:

make
漫長的等待……完成後,安裝:

make

install

驗證

安裝成功以後,就可以檢視 python 的版本了:

python -v

python 2.7.5

python3 -v

python 3.5.2

檢視 python 的路徑,在 /usr/bin 下面。可以看到 python 鏈結的是 python 2.7,所以,執行 python 就相當於執行 python 2.7。

ls -al /usr/bin |

grep python

-rwxr-xr-x. 1 root root 11216 12月 1 2015 abrt-action-analyze-python

lrwxrwxrwx. 1 root root 7 8月 30 12:11 python -> python2

lrwxrwxrwx. 1 root root 9 8月 30 12:11 python2 -> python2.7

-rwxr-xr-x. 1 root root 7136 11月 20 2015 python2.7

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python3 /usr/bin/python
這時,再檢視 python 的版本:

python -v

python 3.5.2

輸出的是 3.x,說明已經使用的是 python3了。

配置 yum

公升級 python 之後,由於將預設的 python 指向了 python3,yum 不能正常使用,需要編輯 yum 的配置檔案:

vi /usr/bin/yum
同時修改:

vi /usr/libexec/urlgrabber-ext-down
將 #!/usr/bin/python 改為 #!/usr/bin/python2.7,儲存退出即可。

安裝了python 在命令列介面無法進行刪除、退格

兩種方式:

yum install -y readline-devel  readline
tar -xvf readline-6.2.4.1.tar.gz 

cd readline-6.2.4.1

python setup.py install

/usr/bin/ld: cannot find -lncurses
有三種可能性

1 系統沒有安裝相對應的lib

2 相對應的lib版本不對

3 lib(.so檔)的symbolic link 不正確,沒有鏈結到正確的函式庫檔案(.so)

locate發現本地有libncurses的庫包

修改為重新安裝後成功。

如果先安裝了python需要重新編譯一次 才生效

進入python安裝目錄 依次執行

./configure    

make

&&make

install

linux 系統上有兩類根本不同的 linux 可執行程式。

第一類是靜態鏈結的可執行程式。靜態可執行程式包含執行所需的所有函式 — 換句話說,它們是「完整的」。因為這一原因,靜態可執行程式不依賴任何外部庫就可以執行。

第二類是動態鏈結的可執行程式

可以用 ldd 命令來確定某一特定可執行程式是否為靜態鏈結的

如果動態可執行程式不包含執行所需的所有函式,動態裝入器(dynamic loader)負責裝入動態鏈結的可執行程式執行所需的共享庫

動態裝入器找到共享庫要依靠兩個檔案 — /etc/ld.so.conf 和 /etc/ld.so.cache

①配置/etc/ld.so.conf

②ldconfig 將/etc/ld.so.conf更新到/etc/ld.so.cache

③動態裝入器通過/etc/ld.so.cache載入庫目錄

共享庫檢視

# ldconfig -p | less
某些情況下,如果要指示動態裝入器首先檢查某個目錄,請將 ld_library_path 變數設定成您希望搜尋的目錄。多個路徑之間用冒號分隔;例如:

# export ld_library_path="/usr/lib/old:/opt/lib"
匯出 ld_library_path 後,如有可能,所有從當前 shell 啟動的可執行程式都將使用 /usr/lib/old 或 /opt/lib 中的庫,如果仍不能滿足一些共享庫相關性要求,則轉回到 /etc/ld.so.conf 中指定的庫。

CentOS中公升級Python到3 2

centos中,python的版本預設為2.4.3版本,而我們有很多任務作可能需要更高的版本,而去python官網的時候發現,python的版本已經到3.2了,於是 python的版本。2 安裝python 3.2 進入shell 解包 tar jxvf python 3.2.tar.bz2 配置並...

centos下如何正確公升級python

在centos上搭建測試環境時候,遇到需要公升級python版本的情況,於是就記錄了整個公升級的過程 在centos5中自帶的python版本是2.4,但是目前許多基於python的應用軟體要求的python版本應要高於2.4。公升級python版本的時候千萬不能解除安裝python 2.4,再安裝...

Centos 安裝公升級python2 7 5

網上查了最簡單的安裝步驟 2.解壓檔案 tar xvf python 2.7.5.tar.bz2 3.建立安裝目錄 mkdir usr local python27 4.安裝python configure prefix usr local python27 make make install 5....