在CentOS上公升級Python的坑

2021-07-24 22:21:09 字數 2445 閱讀 4662

centos 6中,預設安裝了python 2.6。而pipjupyter這樣的常用工具是不支援python 2.6的。為了使用這些工具,就必須將python 2.6公升級到python 2.7以上的版本。那直接編譯公升級python不就好了嗎?

問題就在這裡,centos 6中,有一些系統工具(比如yum)必須要使用python 2.6。你公升級到python 2.7,他們就歇菜了。

所以呢,解決方法就是,讓centos 6中,同時共存python 2.6python 2.7。咱們自己就用python 2.7,讓yum之類的系統工具使用python 2.7

1 安裝gcc之類的編譯工具和依賴庫

yum groupinstall "development tools"

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

wget 

.org/ftp/python/2.7

.10/python-2.7

.10.tar

.xzunxz python-2.7

.10.tar

.xztar -vxf python-2.7

.10.tar

3 配置編譯過程,編譯安裝

./configure --prefix=/usr/local

--enable-unicode

=ucs4 --enable-shared ldflags=

"-wl,-rpath /usr/local/lib"

make && make altinstall

安裝完成後,系統中共存了如下的python命令。

yum之類的系統工具,繼續使用python(即python 2.6.6),我們自己可以用python2.7來訪問我們的python 2.7.10

wget  --no-check-certificate

python2.7

get-pip.py

在上面的所有步驟中,為了使用python 2.7.10,我們都必須用命令python2.7。因為命令python預設訪問python 2.6.6

為了能在shell中直接使用python命令訪問python 2.7.10,我們安裝virtualenv,為python 2.7.10建立乙個虛擬的sandbox

1 安裝 virtualenv

如下命令為python 2.7.10建立乙個虛擬的sandbox

pip2.7

install virtualenv

2 建立virtualenv專案

執行如下命令,就在當前目錄建立virtualenv專案。實際上就是生成了py27project目錄,並把python 2.7.10等**拷貝到裡面。

virtualenv py27project
3 使用 py27project

用source命令,就能啟用py27project。注意當前路徑下必須要存在py27project目錄。

source py27project/bin/activate
啟用後,可以看到shell命令行前自帶(py27project)。在shell中就能用python命令訪問python 2.7.10了。

4 退出 py27project

deactivate命令就能退出啟用的virtualenv環境。

在CentOS 7 5上公升級SQLite3過程實錄

我在centos 7.5上安裝python3.7 django 3.1.7並建立專案時,發現啟動demo例子出錯了,出錯資訊如下 django.core.exceptions.improperlyconfigured sqlite 3.8.3 or later is required found 3...

Centos7上公升級docker版本

1.檢視核心和docker版本資訊 2.yum y update 公升級包 軟體和核心 3.安裝新版本的docker服務 centos7預設執行 yum install y docker 安裝的版本較低,和現有的很多 docker img 不相容,docker 操作時會報錯 error respon...

protocol buffer在python中使用

2.然後將potoc 3.0.0 win32.zip下 檔案 protoc.exe,放到protobuf python 3.0.0 protobuf 3.0.0 src中,在cmd 下在資料夾protobuf python 3.0.0 protobuf 3.0.0 python下依次執行 pytho...