Linux下Python3.6的安裝及避坑指南

Python3的安裝

1.安裝依賴環境

Python3在安裝的過程當中可能會用到各類依賴庫,因此在正式安裝Python3以前,須要將這些依賴庫先行安裝好。node

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
複製代碼

2. 下載Python3源代碼

下載Python3的源代碼有兩種方式,一種是在它的官網下載,網址以下:python

https://www.python.org/downloads/source/
複製代碼

[圖片]sql

另一種方式是經過wget直接下載,如如下命令:vim

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
複製代碼

3. 建立安裝目錄

安裝目錄可依我的喜愛建立,好比在此建立在 /usr/local/python3centos

mkdir -p /usr/local/python3
複製代碼

4. 解壓源碼包

將第2步下載到的源碼包進行解壓,命令爲:bash

tar -zxvf Python-3.6.1.tgz
複製代碼

5. 編譯源碼

先進入解壓後源碼包的目錄,再進行配置:網絡

cd Python-3.6.1
./configure --prefix=/usr/local/python3
複製代碼

以後再編譯,而後再安裝:工具

make
make install
複製代碼

6. 創建Python3的軟連接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
複製代碼

7. 將/usr/local/python3/bin加入PATH

編輯bash_profile進行修改環境變量:ui

vim ~/.bash_profile
複製代碼

在PATH變量下將Python3的啓動目錄添加進去:spa

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/python3/bin

export PATH
複製代碼

改動完畢以後,按Esc,再輸入:wq進行保存退出。

8. 檢查Python3及Pip3是否正常可用

執行以下命令(注意:V是大寫的V),若是看到的結果一致的話,說明Python3已經成功安裝。

[alvin@VM_0_16_centos ~]$ python3 -V
Python 3.6.1
[alvin@VM_0_16_centos ~]$ pip3 -V
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)
複製代碼

避坑指南

其實,對於Python3的安裝,網絡上有太多的帖子了,步驟其實都大同小異。可是,在真正動手安裝以後,或多或少都會遇到一些麻煩,特別是對新手而言。下面良許就列舉一些常見的坑:

坑1:configure: error: no acceptable C compiler found in $PATH

這個問題就比較簡單,就是缺乏gcc編譯環境。將gcc安裝上便可:

yum install -y gcc
複製代碼

固然除此以外,採用源碼安裝的方式也能夠。

坑2:zipimport.ZipImportError: can’t decompress data

這種問題就是由於缺乏zlib 的相關工具包致使的,將相關依賴包裝上便可:

yum -y install zlib*
複製代碼

安裝以後再從新編譯源碼,便可解決。

坑3:pip3: Can't connect to HTTPS URL because the SSL module is not available

這個問題是由於在./configure過程當中,若是沒有加上–with-ssl參數時,默認安裝的軟件涉及到ssl的功能不可用,恰好pip3過程須要ssl模塊,而因爲沒有指定,因此該功能不可用。解決辦法以下:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install
複製代碼

坑4:Multilib version problems

這個很明顯了,就是同一個庫有多個版本。把多餘的版本刪除了就好。

首先查詢已有的版本(以openssl爲例,衝突哪一個查哪一個)

# rpm -qa | grep openssl
openssl-devel-1.0.0-27.el6_4.2.x86_64
openssl-1.0.0-27.el6_4.2.x86_64
openssl-1.0.0-27.el6_4.2.i686
複製代碼

能夠看到系統裏安裝了openssl-1.0.0-27.el6_4.2.x86_64和openssl-1.0.0-27.el6_4.2.i686兩個版本的openssl,咱們留下x86的版本便可:

rpm --erase --nodeps openssl-1.0.0-27.el6_4.2.i686
複製代碼

再更新一下openssl:

# yum update "openssl*"
複製代碼

再查詢一下openssl,問題解決!

# rpm -qa | grep openssl
openssl-devel-1.0.1e-16.el6_5.7.x86_64
openssl-1.0.1e-16.el6_5.7.x86_64
複製代碼


我是良許,世界500強外企 Linux 開發工程師,專業生產 Linux 乾貨。歡迎關注個人公衆號「良許Linux」,回覆「1024」獲取最新最全的技術資料,回覆「入羣」進入高手如雲技術交流羣。

img
相關文章
相關標籤/搜索