Linux 下編譯安裝Python


     

一、下載源碼包Python-3.5.1.tgz

二、安裝依賴包
yum -y install zlib zlib-devel
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel

釋放文件:
tar -xvzf Python-3.5.1.tgz

進入目錄:
cd Python-3.5.1/

配置編譯,因為上面依賴包是用yum安裝而不是自己編譯的,所以都是安裝在系統默認目錄下,因此各種選項不用加默認即可生效:
./configure --prefix=/usr/python --enable-shared CFLAGS=-fPIC
補充一下:這里加上--enable-shared和-fPIC之后可以將python3的動態鏈接庫編譯出來,默認情況編譯完lib下面只有python3.xm.a這樣的文件,python本身可以正常使用,但是如果編譯第三方庫需要python接口的比如caffe等,則會報錯;所以這里建議按照上面的方式配置,另外如果openssl不使用系統yum安裝的,而是使用自己編譯的比較新的版本可以使用--with-openssl=/usr/local/openssl這種方式指定,后面目錄為openssl實際安裝的目錄,另外編譯完還要將openssl的lib目錄加入ld運行時目錄中即可.

接下來編譯源碼:
make

執行安裝:
make install

整個過程大約5-10分鍾,安裝成功之后,安裝目錄就在/usr/python

安裝完成之后要簡單做一下配置:即將python庫路徑添加到/etc/ld.so.conf配置中,然后執行ldconfig生效;或者添加到$LD_LIBRARY_PATH中,這樣在接下來運行python3是就不會報找不到庫文件的錯誤了.
系統中原來的python在/usr/bin/python,通過ls -l可以看到,python是一個軟鏈接,鏈接到本目錄下的python2.7
這里不要把這個刪除,不對原來默認的環境做任何修改,只新建一個python3的軟鏈接即可,只是需要執行python3代碼時python要改成python3,或者python腳本頭部解釋器要改為#!/usr/bin/python3

這里建立有關的軟鏈接如下:ln -s /usr/python/bin/python3 /usr/bin/python3
ln -s /usr/python/bin/pip3 /usr/bin/pip3

因為readline依賴於ncurses庫,如果沒有這個庫,編譯readline的時候會提示can not find -lncurses,如果在centos環境下可以執行下面命令安裝:
yum -y install ncurses ncurses-devel

tar -xvzf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1/
python3 setup.py install

 

注意:
在安裝python之前都必要模塊里面需要加一條:
yum isntall gcc
然后在按照博客流程來,就不會在configure那里報錯了


免責聲明!

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



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