Linux下Python編譯安裝


1.安裝python3

1.1下載python源碼包

網址:https://www.python.org/downloads/release/python-362/

下載地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

1.1.1安裝python前的庫環境,非常重要

yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

1.2下載,解壓安裝源碼包

 

1、configure

這一步一般用來生成 Makefile,為下一步的編譯做准備,你可以通過在 configure 后加上參數來對安裝進行控制,比如代碼:

./configure --prefix=/usr

上面的意思是將該軟件安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。

同時一些軟件的配置文件你可以通過指定 --sys-config= 參數進行設定。有一些軟件還可以加上 --with、--enable、--without、--disable 等等參數對編譯加以控制,你可以通過允許 ./configure --help 察看詳細的說明幫助。

2、make

這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟件需要調用perl或python來進行編譯)。

如果 在 make 過程中出現 error ,你就要記下錯誤代碼(注意不僅僅是最后一行),然后你可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。

make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能,比如 make install 一般表示進行安裝,make uninstall 是卸載,不加參數就是默認的進行源代碼編譯。

make 是 Linux 開發套件里面自動化編譯的一個控制程序,他通過借助 Makefile 里面編寫的編譯規范進行自動化的調用 gcc 、ld 以及運行某些需要的程序進行編譯的程序。一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。

3、make install

這條命令來進行安裝(當然有些軟件需要先運行 make check 或 make test來進行一些測試),這一步一般需要你有 root 權限(因為要向系統寫入文件)

 
         

安裝python3具體步驟:

1.下載python3源碼,選擇3.6.7因為ipython依賴於>3.6的python環境


下載在/opt/文件夾下面
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz


2.解壓縮源碼包,去除xz后綴
xz -d Python-3.6.7.tar.xz


3.解壓縮源碼包,去除.tar后綴
tar -xf Python-3.6.7.tar
4.解決編譯安裝python3所需的軟件依賴 ******** 很重要

  備注:解決這些依賴關系后期才能正常運轉python3.6,
  如果不解決,會出現各種報錯信息,此時還得重新編譯python3.6

  看上面安裝鏈接

 

5.開始進行編譯安裝
分為三部曲
1.調用源碼包路徑底下的configure這個腳本文件
  ./configure --prefix=/opt/python36/
  指定軟件安裝的位置/opt/python36 下面

2.執行make指令,開始編譯 (此步驟還不會生成/opt/python36這個文件夾)
  #這個編譯是個什么鬼?
  -翻譯 python解釋器是對代碼進行一行一行的翻譯,並且轉化成機器碼去執行
  print('hello world ')
  
  python 腳本.py

  -編譯 ,編譯型的語言,在運行代碼之前,有一個編譯的過程,(將代碼,編譯轉化成一個二進制文件)
  - c
  - c++
  - java
  - golang
  main.go
  fmt.Println('hello world')

  go run main.go


  go build main.go #編譯生成一個可執行命令
  -在window底下 生成一個 main.exe
  - main




  3. make install 安裝軟件 (此步才是安裝軟件的過程)
    -才會生成一個 /opt/python36這個軟件安裝路徑
    make install

6.編譯安裝ok,沒有報錯后,就可以正常使用python3了
7.快捷使用python3.6的方式
  以下配置方式,二選一,請你選path配置

  1.軟連接(這一步很麻煩,並且不適用於virtualenv的創建)
    ln -s /opt/python36/bin/python3.6 /usr/bin/python3 #但是這一步還沒有pip
    ln -s /opt/python36/bin/pip3 /usr/bin/pip3

  2.環境變量的配置
    1.echo $PATH
  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  2.配置python36的目錄,加入環境變量
    強調!!!
    強調!!!
    強調!!!
    因為path的路徑查找是有優先級順序的!!!

    並且在配置virtualenv的時候,優先以先找到的python環境為base環境

    #請將python36的目錄放到path的第一層
    /opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:

  3.配置環境變量,永久生效,寫入到文件/etc/profile中,每次登錄就生效

    vim /etc/profile #將此配置寫到最低行
    PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    source /etc/profile #讀取這個文件,讓python3生效

8.此時可以正確使用python3啦!

 
復制代碼
#yum install gcc -y
.
/configure --prefix=/opt/python make && make install
---------------------
用python查看默認安裝路徑
>>> import sys
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6',
'/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
--------------------
python3.4默認沒添加path
在/etc/profile最后一行添加
export PATH=$PATH:/opt/python/bin
然后
source /etc/profile

#python快捷path就被改了,yum用的python2,麻煩
復制代碼

1.2.3 牛逼的python Tab自動補全

下載setuptool 3.4以上已經默認安裝了easy_install-3.4

下載地址:
https://pypi.python.org/pypi/setuptools/36.2.7
下載命令:
wget https://pypi.python.org/packages/07/a0/11d3d76df54b9701c0f7bf23ea9b00c61c5e14eb7962bb29aed866a5844e/setuptools-36.2.7.zip#md5=b9e6c049617bac0f9e908a41ab4a29ac
解壓:
unzip setuptools-36.2.7.zip
編譯:
python3 setup.py build
python2 setup.py build
無誤后安裝:
python3 setup.py install
python2 setup.py install
沒什么用

下載readline

#yum install -y readline-devel -y 
#pip install readline
 
tab補全
#python startup file
import readline,rlcompleter
#tab completion
readline.parse_and_bind('tab:complete')
----------------------------
python歷史記錄
#history file
import os
history_file = os.path.join(os.environ["HOME"],".pythonhistory")
 
[root@mm_local ~]# echo "export PYTHONSTARTUP='/root/.pythonstartup'" >> /root/.bashrc   
[root@mm_local ~]# source /root/.bashrc  
[root@mm_local ~]# cat /root/.pythonstartup   
import os  
import readline  
import rlcompleter  
import atexit  
  
  
#tab completion  
readline.parse_and_bind("tab: complete")  
  
  
#history file  
history_file = os.path.join(os.environ["HOME"],".pythonhistory")  
try:  
    readline.read_history_file(history_file)  
except IOError:  
    pass  
atexit.register(readline.write_history_file,history_file)  
  
  
del os,history_file,readline,rlcompleter  
[root@mm_local ~]# python  
Python 2.7.3 (default, Jun  5 2013, 22:40:26)   
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2  
Type "help", "copyright", "credits" or "license" for more information.  
>>> import sys  
>>> sys.path<tab> #按tab鍵就可以自動補全了  
  
[root@mm_local ~]# python  
>>>  
>>> sys.path #按上下方向鍵即可找到歷史命令 
整體代碼

 加入python的啟動環境變量,永久生效自動補全

 
只需要啟動時執行一條命令即可

import rlcompleter, readline
readline.parse_and_bind('tab:complete')
可以將上述的代碼存於~/.pythonrc.py文件中。

然后,在~/.bashrc中設置

export PYTHONSTARTUP=~/.pythonrc.py
這樣,每次啟動終端,bash就會設置PYTHONSTARTUP這個環境變量,然后,python啟動時就會使用這個變量指定的文件中的初始化代碼。

在python解釋器中,輸入一個變量的一部分,或者變量后面加句點,再按TAB鍵就可以看到自動補全的威力。
 

 


免責聲明!

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



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