Linux下Python編譯安裝

1.安裝python3

1.1下載python源碼包

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

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

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下載,解壓安裝源碼包

 

一、configure

這一步通常用來生成 Makefile,爲下一步的編譯作準備,你能夠經過在 configure 後加上參數來對安裝進行控制,好比代碼:linux

./configure --prefix=/usr

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

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

二、make

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

若是 在 make 過程當中出現 error ,你就要記下錯誤代碼(注意不單單是最後一行),而後你能夠向開發者提交 bugreport(通常在 INSTALL 裏有提交地址),或者你的系統少了一些依賴庫等,這些須要本身仔細研究錯誤代碼。vim

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

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

三、make install

這條命令來進行安裝(固然有些軟件須要先運行 make check 或 make test來進行一些測試),這一步通常須要你有 root 權限(由於要向系統寫入文件)post

 
  

安裝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鍵就能夠看到自動補全的威力。
相關文章
相關標籤/搜索