日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python2与python3转换记录

發布時間:2023/11/27 生活经验 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python2与python3转换记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

Python2和Python3不兼容是每個接觸過Python的開發者都知道的事,雖說Python3是未來,但是仍然有很多項目采用Python2開發。Linux的許多發行版本(如Ubuntu)都會自帶Python2.7,但是當我們準備開發一個Python3項目的時候,Linux下確實是可以兩個一起裝的,但是問題是你怎么切換兩個版本的Python?

01 修改別名

查看一下我們的默認Python版本

$ python --version
Python 2.7.6

?然后我們修改一下別名

$ alias python='/usr/bin/python3'
$ python --version
Python 3.4.3  # 版本已經改變

/usr/bin/python3?這個路徑是怎么找到的呢?

一般來說,軟件的二進制文件都可以在?/usr/bin?或?/usr/local/bin?(這個優先級高一點)找到。當然如果你是Debian系的Linux,可以這么找(前提是你已經安裝了Python3):

$ dpkg -L python3

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

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

0x02 鏈接文件

在?/usr/bin?中建立一個鏈接文件指向Python3。

$ ln -s python /usr/bin/python3
$ python --version
Python 3.4.3

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

03 采用update-alternatives 切換版本

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

首先看一下update-alternatives的幫助信息:

$ update-alternatives --help
用法:update-alternatives [<選項> ...] <命令>

我們僅需要了解3個參數就行了

  • --install <鏈接> <名稱> <路徑> <優先級>?:建立一組候選項
  • --config <名稱>?:配置 <名稱>組中的可選項,并選擇使用其中哪一個
  • --remove <名稱> <路徑>?:從 <名稱> 中去掉 <路徑>選項

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

$ update-alternatives --display python
update-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。

04 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

05 總結

前面兩種方法不推薦使用。

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

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

另外,本文介紹的切換不同版本軟件的方法,除了 virtualenvwrapper 之外,前面3種方法都適用于其他軟件,比如Java(open-jdk和oracle-jdk)

?

part 2:Anaconda實現python2與python3版本切換

如果你已經安裝了Anaconda Python3.6版,想要再安裝Python2.7環境,在命令行中輸入:

conda create -n python27 python=2.7

想要使用python2.7環境同樣需要命令source activate python27(這里面的python27是前面create時自己定義的名字),該條命令在linux和mac環境中使用 source activate python27 。接下來看到命令行的最前端多出來(python27),這時候已經處在python2.7的環境中了。想要退出python2.7進入python3.6,需要再次鍵入命令deactivate(linux和mac下用source deactivate命令)。

?

參考博客:

【1】https://blog.csdn.net/justdoithai/article/details/70310095

【2】https://www.cnblogs.com/zl1991/p/9041554.html

【3】https://blog.csdn.net/jainszhang/article/details/80345928

?

?

總結

以上是生活随笔為你收集整理的python2与python3转换记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。