1. 程式人生 > >Linux下Python3.6的安裝及避坑指南

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

## Python3的安裝 #### 1.安裝依賴環境 Python3在安裝的過程中可能會用到各種依賴庫,所以在正式安裝Python3之前,需要將這些依賴庫先行安裝好。 ``` 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的原始碼有兩種方式,一種是在它的官網下載,網址如下: ``` https://www.python.org/downloads/source/ ``` [圖片] 另外一種方式是通過wget直接下載,如以下命令: ``` wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz ``` #### 3. 建立安裝目錄 安裝目錄可依個人喜好建立,比如在此建立在 `/usr/local/python3` : ``` mkdir -p /usr/local/python3 ``` #### 4. 解壓原始碼包 將第2步下載到的原始碼包進行解壓,命令為: ``` 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進行修改環境變數: ``` vim ~/.bash_profile ``` 在PATH變數下將Python3的啟動目錄新增進去: ```shell # .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已經成功安裝。 ```shell [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 ``` --- 公眾號:良許Linux ### 有收穫?希望老鐵們來個三連擊,給更多的人看到這