如何切換python2和python3

爱喝马黛茶的安东尼
發布: 2019-06-19 16:36:38
原創
6536 人瀏覽過

如何切換python2和python3

如何切換python2和python3?以下以windows環境與Linux環境分別介紹切換方法:

#windows環境:

##在windows環境下安裝python2與python3,如何切換二者使用

輸入py -3,即進入python3

輸入py -2,即進入python2

#Linux環境:

為什麼需要有兩個版本的Python

Python2和Python3不相容是每個接觸過Python的開發者都知道的事,雖說Python3是未來,但仍有許多專案採用Python2開發。 Linux的許多發行版本(如Ubuntu)都會自備Python2.7,但是當我們準備開發一個Python3專案的時候,我們該怎麼辦?

那就把Python3也下咯。嗯,Linux下確實是可以兩個一起裝的,但問題是你要怎麼切換兩個版本的Python。

1 修改別名

先來看看我們的預設Python版本


$ python --versionPython 2.7.6
登入後複製

然後我們修改別名

$ alias python='/usr/bin/python3'$ python --versionPython 3.4.3  # 版本已经改变
登入後複製

/usr/bin/python3 這條路徑是怎麼找到的呢?

一般來說,軟體的二進位檔案都可以在 /usr/bin 或 /usr/local/bin (這個優先權高一點)找到。當然如果你是Debian系的Linux,可以這麼找(前提是你已經安裝了Python3):

$ dpkg -L python3


上面的別名修改只是暫時性的,重開一個視窗後配置就不見了。如果要讓每個視窗都使用這個別名,可以編輯 ~/.bashrc (如果你是別的shell的話,就不是這個文件,如zsh是 ~/.zshrc ),把alias配置寫入檔案。

修改別名優點是夠簡單,但切換不靈活。

相關推薦:《

Python影片教學

2 連結檔案

在 /usr/bin 中建立連結文件指向Python3。

$ ln -s python /usr/bin/python3$ python --versionPython 3.4.3
登入後複製

跟修改別名一樣,也是修改不夠靈活。

3 採用update-alternatives 切換版本

update-alternatives是Debian提供的一個工具(非Debian系的就不用看了),原理類似於上面一個辦法,也是透過連結的方式,但是其切換的過程非常方便。

先來看看update-alternatives的幫助資訊:

$ update-alternatives --help
用法:update-alternatives [<选项> ...] <命令>
 
命令:
  --install <链接> <名称> <路径> <优先级>
    [--slave <链接> <名称> <路径>] ...
                           在系统中加入一组候选项。
  --remove <名称> <路径>   从 <名称> 替换组中去除 <路径> 项。
  --remove-all <名称>      从替换系统中删除 <名称> 替换组。
  --auto <名称>            将 <名称> 的主链接切换到自动模式。
  --display <名称>         显示关于 <名称> 替换组的信息。
  --query <名称>           机器可读版的 --display <名称>.
  --list <名称>            列出 <名称> 替换组中所有的可用候选项。
  --get-selections         列出主要候选项名称以及它们的状态。
  --set-selections         从标准输入中读入候选项的状态。
  --config <名称>          列出 <名称> 替换组中的可选项,并就使用其中
                           哪一个,征询用户的意见。
  --set <名称> <路径>      将 <路径> 设置为 <名称> 的候选项。
  --all                    对所有可选项一一调用 --config 命令。
 
<链接> 是指向 /etc/alternatives/<名称> 的符号链接。
    (如 /usr/bin/pager)
<名称> 是该链接替换组的主控名。
    (如 pager)
<路径> 是候选项目标文件的位置。
    (如 /usr/bin/less)
<优先级> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高。
 
选项:
  --altdir <目录>          改变候选项目录。
  --admindir <目录>        设置 statoverride 文件的目录。
  --log <文件>             改变日志文件。
  --force                  就算没有通过自检,也强制执行操作。
  --skip-auto              在自动模式中跳过设置正确候选项的提示
                           (只与 --config 有关)
  --verbose                启用详细输出。
  --quiet                  安静模式,输出尽可能少的信息。不显示输出信息。
  --help                   显示本帮助信息。
  --version                显示版本信息。
登入後複製

--install <連結> <姓名> <路徑> <優先權> :建立一群組候選項

--config <名稱> :設定<名稱>群組中的可選項,並選擇使用其中哪一個

--remove <名稱> <路徑> :從<名稱> 中去掉<路徑>選項

首先我們先看一下有沒有關於Python的可選項:

$ update-alternatives --display pythonupdate-alternatives: 错误: 无 python 的候选项
登入後複製

那首先建立python的組,並添加Python2和Python3的可選項

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 # 添加Python2可选项,优先级为2
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 #添加Python3可选项,优先级为1
登入後複製

注意,這裡的 /usr/bin/python 鏈接文件,兩個可選項必須是一樣的,這樣這個鏈接文件才可以選擇兩個不同的可選項去連結。

這時如果我們查看 /usr/bin/python 這個檔案時,會發現它已經連結到了 /etc/alternatives/python 。

lrwxrwxrwx 1 root root        24  6月 19 18:39 python -> /etc/alternatives/python
登入後複製

然後我們再看一下版本

$ python --version
Python 2.7.6
登入後複製

為什麼還是Python2,看一下設定

$ sudo update-alternatives --config python
有 2 个候选项可用于替换 python (提供 /usr/bin/python)。   
选择         路径           优先级     状态
------------------------------------------------------------
* 0     /usr/bin/python2.7       2      自动模式  
  1     /usr/bin/python2.7       2      手动模式  
  2     /usr/bin/python3.4       1      手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:
登入後複製

原來是因為預設選取了自動模式,而Python2的優先權高於Python3,這時候只要鍵入2,就可以使用Python3了。

如果你想要刪除某個可選項的話:

$ sudo update-alternatives --remove python /usr/bin/python2.7
登入後複製

update-alternatives只適用於Debian系Liunx。

4 virtualenvwrapper 切換版本

virtualenvwrapper是管理Python虛擬環境的工具,可以很方便的為不同的專案建立獨立的環境,每個專案都可以安裝自己的依賴,同時也支援在不同的虛擬環境中存在不同版本的Python。

先安裝virtualenvwrapper,可以選擇apt安裝或pip安裝

apt安裝

$ sudo apt-get install virtualenvwrapper
登入後複製

pip安裝

$ sudo pip install virtualenvwrapper
登入後複製

當你需要使用Python2開發專案時,建立一個Python2的虛擬環境:

$ mkvirtualenv -p /usr/bin/python2 env27
登入後複製

當你需要Python3開發:


$ mkvirtualenv -p /usr/bin/python3.4 env34
登入後複製

然後可以隨時切換不同的虛擬環境:

$ workon env27  # 进入Python2环境$ workon env34  # 进入Python3环境
登入後複製

更酷的是,你可以在進入虛擬環境的同時切換到專案目錄,只需要編輯 $VIRTUAL_ENV/bin/postactivate 這個檔案即可:

$ vim $VIRTUAL_ENV/bin/postactivate  #前提是已经进入对应的虚拟环境
登入後複製

在檔案中新增切換目錄的指令:

cd  /path/to/your/project
登入後複製

5 總結

前面兩種方法不建議使用。

使用 update-alternatives 切換版本只適用於Debian系的Linux。

推薦使用 virtualenvwrapper 來管理虛擬環境和版本。

以上是如何切換python2和python3的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!