離線環境升級python及安裝模塊


  之前介紹的的Zabbix腳本是用python3寫的,但是centos7默認安裝的是python2.7.5,所以我們需要升級到python3。

  因為服務器是內網環境,不能訪問外網,所以本文就對離線環境下(無網絡)升級python及安裝模塊進行介紹。

Centos7升級python3

安裝python3

  先介紹參考文檔,centos7將python默認版本升級

  1. 下載python-3.7.1安裝包並使用xFTP上傳到服務器。

  2. 解壓,tar -zxvf Python-3.7.1.tgz

  3. 進入解壓目錄: cd Python-3.7.1

  4. 創建安裝目錄: mkdir /usr/local/python3.7.1

  5. 編譯: ./configure --prefix=/usr/local/python3.7.1

  6. 安裝: make && make install

  7. 備份舊鏈接,新建軟鏈接: mv /usr/bin/python /usr/bin/python2.7.5

    ln -s /usr/local/python3.7.1/bin/python3.7 /usr/bin/python

  安裝完后可以介入命令 python -V,查看是否操作成功。

修改其他受影響的文件

  因為系統默認使用python2.7.5,而python2和python3是由很大不同的,所以我們要修改受影響的配置文件。

  1. 修改yum的配置文件

  1.1 vim /usr/bin/yum

  1.2 將文件頭部的 #!/usr/bin/python 改成#!/usr/bin/python2.7.5

  1.3 vim /usr/libexec/urlgrabber-ext-down

  1.4 將文件頭部的 #!/usr/bin/python 改成#!/usr/bin/python2.7.5

安裝過程中報錯處理

  上述是正常安裝的步驟,但是在安裝過程中,因為缺少網絡環境,所以難免會碰到缺少依賴包導致的報錯。

  1. zipimport.ZipImportError: can't decompress data

  參考文檔如下:Python安裝常見問題(1):zipimport.ZipImportError: can't decompress data

  安裝zlib相關依賴包,修改python安裝配置文件,重新安裝。

  2. ModuleNotFoundError: No module named '_ctypes'

  參考文檔如下:關於在centos下安裝python3.7.0以上版本時報錯ModuleNotFoundError: No module named '_ctypes'的解決辦法

  安裝python3.7版本需要一個新的包libffi-devel,安裝此包之后再次進行編譯安裝即可。

使用中碰到的問題及處理方案

  python安裝好后,我們就上手使用了,但是使用過程中又碰到了一些新的問題。

方向鍵和刪除鍵無法使用

  參考文檔如下: python3方向鍵和刪除鍵無法使用

  安裝readline-devel包,后重新編譯安裝。

PIP不能使用 

  Python不能使用PIP,因為SSL版本可能是1.0.1,python3.7版本最低支持1.0.2,需要升級ssl。

  解決方案:安裝ssl-dev(不用修改配置檔),建立PIP軟鏈接!

  參考文檔如下:

  1. Python3 ssl模塊不可用的問題

  2. Linux學習-linux系統下python升級到python3.6步驟詳解,以及遇到的問題解決

  3. python安裝完畢后,提示找不到ssl模塊的解決步驟

 

  綜上,在升級python3之前,我們要先安裝zlib相關依賴包,libffi-devel包,readline-devel包,ssl-dev等。否則,會在安裝過程或者使用中碰到問題,重復編譯安裝~

 

無外網環境安裝python包

  參考文檔如下:

  1. 無外網下安裝python包

  2. 無網絡環境用pip安裝python類包

  3. python安裝包的離線安裝方法

  

  本文使用了兩種安裝方法:

  1. 安裝stomp時通過python setup.py install安裝。

  2. 安裝kafka時通過pip install kafka_python-1.4.4-py2.py3-none-any.whl安裝。

  可以在PyPI下載安裝包。


免責聲明!

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



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