1. 程式人生 > >python的多版本安裝以及常見錯誤(長期更新)

python的多版本安裝以及常見錯誤(長期更新)

編譯 stat 分鐘 無法 完整路徑 python2.x exe mar host

(此文長期更新)Python安裝常見錯誤匯總

註:本教程以python3.6為基準

既然是總結安裝過程中遇到的錯誤,就順便記錄一下我的安裝過程好了。

  • 先來列舉一下安裝python3.6過程中可能需要的依賴包:
    yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
  • 準備工作:使用wget下載官網提供給我們的源碼包,若為安裝wget則執行yum install -y wget
    1.移動到我們下載源碼包的目錄下 cd /usr/local/
    2.下載源碼包 wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz


    3.解壓 tar -zxvf Python-3.6.4.tgz
    4.刪除安裝包 rm -rf Python-3.6.4.tgz
    5.創建編譯的路徑 mkdir /usr/local/python3

  • 編譯安裝過程:確保此時所在目錄為/usr/local/Python-3.6.4,即解壓後的包目錄。ls看一下有什麽
aclocal.m4     config.sub    Include          Mac              Modules  Programs        Python            setup.py 
build          configure     install-sh       Makefile         Objects  pybuilddir.txt  python-config     Tools 
config.guess   configure.ac  Lib              Makefile.pre     Parser   pyconfig.h      python-config.py 
config.log     Doc           libpython3.6m.a  Makefile.pre.in  PC       pyconfig.h.in   python-gdb.py 
config.status  Grammar       LICENSE          Misc             PCbuild  python          README.rst 

1../configure --prefix=/usr/local/python3 --enable-optimizations
註:--prefix指定編譯目錄,即為之前創建的/usr/local/python3, --enable-optimizations指最優化安裝
2.編譯make、安裝make install,或一次執行make & make install.編譯過程十分漫長(可能七八分鐘,視具體情況而定),喝杯咖啡,耐心等待^_^
3.最後一步,創建軟鏈接.

[root@localhost Python-3.6.4]# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 

有人可能好奇為啥要創建這個軟鏈接,echo一下環境變量PATH發現/usr/local/python3/bin不存在,我們知道想要一個命令能夠不加完整路徑名直接執行,那麽對應的可執行文件必須在環境變量PATH中。對此有兩種解決方式,
方式a.導入環境變量:export PATH="$PATH:/usr/local/python3/bin"記住,不能忽略PATH串中的$PATH,否則將意味著覆蓋原有路徑。
方式b.將相應的可執行程序放在已經存在環境變量中,這裏我們推薦/usr/bin(墨守陳規的)。

解釋一下:1./usr/bin下面的都是系統預裝的可執行程序,會隨著系統升級而改變。
2./usr/local/bin目錄是給用戶放置自己的可執行程序的地方,推薦放在這裏,不會被系統升級而覆蓋同名文件。(還記得嗎,我們之前編譯的路徑就在這裏)
好了,扯遠了。。。回歸正題,直接上創建軟鏈接的步驟:

  1. 刪除原本指向python2.x的軟鏈接,rm -rf /usr/bin/python
  2. 創建指向python3.6的軟鏈接,ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
  3. 至此安裝結束,驗證安裝成功python -V(大寫的V哦),顯示對應的版本號即表示安裝成功了~

    安裝過程中遇到的錯誤

  • 如果本機中已經存在舊版本python(python2.x)的情況下,安裝python3.x,以下配置文件需要更改:
1./usr/bin/yum 
2./usr/libexec/urlgrabber-ext-down

!/usr/bin/python ---> #!/usr/bin/python2

解釋一下:1.yum包管理器是由默認的(系統自帶)python2.x編寫的,當我們以python3的軟鏈接覆蓋原本的python2的軟連接時(ln -s /usr/local/python3/bin/python3.7 /usr/bin/python),python的默認版本變為python3,會導致yum無法執行.
2./usr/libexec/urlgrabber-ext-down是yum下載好安裝包之後執行安裝的腳本,因此要想軟件被正確安裝,此文件也需要修改默認的python版本.

python的多版本安裝以及常見錯誤(長期更新)