ubuntu18.04安裝多版本python及管理


20200609
部分引用https://www.jb51.net/article/163112.html

ubuntu18.04安裝3個python版本,系統已自帶python3.6.9和2.7.15,再增加python3.6.8,默認python3.6.8

一、舊版本信息

 python2 --version
Python 2.7.15+
 python --version
Python 3.6.9

二、注意事項

切記不可隨意刪除系統自帶python版本,因為系統有很多軟件依賴着

三、安裝辦法

ubuntu官方apt工具包安裝
PPA(Personal Package Archive)的apt工具包安裝
手動下載並編譯python源代碼安裝

3.1源碼安裝教程

3.1.1.下載安裝包

cd /usr/local/src
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

3.1.2.解壓安裝包

tax -xvf Python-3.6.8.tgz

3.1.3安裝指定版本python

3.1.3.1.預配置

./configure(也可以./configure --prefix=/usr/local/python3.6.8)

3.1.3.1.編譯安裝

sudo make
sudo make install 

3.1.3.2.預配置兩種方法的區別

1.若編譯執行的是./configure --prefix=/usr/local/python368,則可執行文件放在/usr/local/python368/bin,庫文件放在/usr/local/python368/lib,配置文件放在/usr/local/python368/include,其它的資源文件放在/usr /local/python368/share
2.若編譯執行的是./configure --prefix=/usr/local/python368,添加環境變量PATH=PATH:HOME/bin:/usr/local/python368/bin
查看環境變量
echo $PATH

3.1.4.刪除就版本python默認軟鏈指向

1.查看python現有信息
root@chenwx:/usr/bin# ls /usr/bin/python* -lh
lrwxrwxrwx 1 root root   24 Jun  9 14:45 /usr/bin/python -> /etc/alternatives/python
lrwxrwxrwx 1 root root    9 Apr 16  2018 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3.5M Apr 16 01:20 /usr/bin/python2.7
lrwxrwxrwx 1 root root    9 Oct 25  2018 /usr/bin/python3 -> python3.6
-rwxr-xr-x 2 root root 4.4M Apr 18 09:56 /usr/bin/python3.6
lrwxrwxrwx 1 root root   34 Jun  9 14:41 /usr/bin/python368 -> /usr/local/python3.6.8/bin/python3
-rwxr-xr-x 2 root root 4.4M Apr 18 09:56 /usr/bin/python3.6m
-rwxr-xr-x 1 root root 1018 Oct 29  2017 /usr/bin/python3-jsondiff
-rwxr-xr-x 1 root root 3.6K Oct 29  2017 /usr/bin/python3-jsonpatch
-rwxr-xr-x 1 root root 1.4K May  2  2016 /usr/bin/python3-jsonpointer
-rwxr-xr-x 1 root root  398 Nov 16  2017 /usr/bin/python3-jsonschema
lrwxrwxrwx 1 root root   10 Oct 25  2018 /usr/bin/python3m -> python3.6m
2.重命名舊的python軟鏈
mv /usr/bin/python /usr/bin/python.bak
mv /usr/bin/pip /usr/bin/pip.bak
3.建立python新軟鏈和pip軟鏈
ln -s /usr/local/python368/bin/python3 /usr/bin/python
ln -s /usr/local/python368/bin/pip3 /usr/bin/pip
4.測試版本
root@chenwx:/usr/bin# python
Python 3.6.8 (default, Jun  9 2020, 14:37:48) 
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

3.1.5.指定默認python版本

如上步操作所示,已經制定python3.6.8版本是默認python版本

3.1.6.使用update-alternatives 來為整個系統更改Python版本

我們可以使用 update-alternatives 來為整個系統更改Python 版本。以 root 身份登錄,首先羅列出所有可用的python 替代版本信息:
#update-alternatives --list python
update-alternatives: error: no alternatives for python
如果出現以上所示的錯誤信息,則表示 Python 的替代版本尚未被update-alternatives 命令識別。想解決這個問題,我們需要更新一下替代列表,將python2.7 和 python3.6放入其中。
root@chenwx:/usr/bin# update-alternatives --install /usr/bin/python python /usr/bin/python2 100
update-alternatives: using /usr/bin/python2 to provide /usr/bin/python (python) in auto mode
root@chenwx:/usr/bin# update-alternatives --install /usr/bin/python python /usr/bin/python3 110
update-alternatives: using /usr/bin/python3 to provide /usr/bin/python (python) in auto mode
root@chenwx:/usr/bin# update-alternatives --install /usr/bin/python python /usr/local/python3.6.8/bin/python3 150
update-alternatives: using /usr/local/python3.6.8/bin/python3 to provide /usr/bin/python (python) in auto mode

-install 選項使用了多個參數用於創建符號鏈接。最后一個參數指定了此選項的優先級,如果我們沒有手動來設置替代選項,那么具有最高優先級的選項就會被選中。
root@chenwx:/usr/bin# sudo update-alternatives --config python
There are 3 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                                Priority   Status
------------------------------------------------------------
* 0            /usr/local/python3.6.8/bin/python3   150       auto mode
  1            /usr/bin/python2                     100       manual mode
  2            /usr/bin/python3                     110       manual mode
  3            /usr/local/python3.6.8/bin/python3   150       manual mode


免責聲明!

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



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