使用Anaconda實現Python2和Python3共存及相互轉換

前言

初學Python時,總是被python的兩個不太兼容的版本搞得頭昏腦脹。按目前的發展趨勢,python未來的主流版為python3。但是我們經常會遇到一些很有意思代碼使用的是python2版本。於是我們需要同時擁有python2和python3的運行環境。這裡介紹一個強大的軟體Anaconda,它實現python2和python3兩個版本的共存,並且可以相互轉換。Anaconda 是一個用於科學計算的 Python 發行版,支持 Linux, Mac, Windows, 包含了眾多流行的科學計算、數據分析的 Python 包。

使用Anaconda輕鬆解決Python2和Python3共存

更新歷史

2018年05月04日 - 初稿

閱讀原文 - wsgzao.github.io/post/a

擴展閱讀

Anaconda - anaconda.org/


為什麼選擇Anaconda

Anaconda 實際上是一個軟體發行版,它附帶了 conda、Python 和多個科學包及其依賴項。應用程序 conda 是包和環境管理器。Anaconda 的下載文件比較大(約 500 MB),因為它附帶了 Python 中最常用的數據科學包。如果只需要某些包,或者需要節省帶寬或存儲空間,也可以使用 Miniconda 這個較小的發行版(僅包含 conda 和 Python)。

什麼是 Anaconda

Anaconda是專註於數據分析的Python發行版本,包含了conda、Python等多個科學包及其依賴項。作為好奇寶寶的你是不是發現了一個新名詞 conda,那麼你一定會問 conda 又是什麼呢?

什麼是 conda

conda 是開源包(packages)和虛擬環境(environment)的管理系統

packages 管理: 可以使用 conda 來安裝、更新 、卸載工具包 ,並且它更關注於數據科學相關的工具包。在安裝 anaconda 時就預先集成了像 Numpy、Scipy、 pandas、Scikit-learn 這些在數據分析中常用的包。另外值得一提的是,conda 並不僅僅管理Python的工具包,它也能安裝非python的包。比如在新版的 Anaconda 中就可以安裝R語言的集成開發環境 Rstudio。

虛擬環境管理: 在conda中可以建立多個虛擬環境,用於隔離不同項目所需的不同版本的工具包,以防止版本上的衝突。對糾結於 Python 版本的同學們,我們也可以建立 Python2 和 Python3 兩個環境,來分別運行不同版本的 Python 代碼。

知道 是什麼(what) 的同時,我們也需要問一問 為什麼(why)。那麼,為什麼要選擇用Anaconda呢?

Anaconda 的優點

Anaconda的優點總結起來就八個字:省時省心、分析利器。

省時省心: Anaconda通過管理工具包、開發環境、Python版本,大大簡化了你的工作流程。不僅可以方便地安裝、更新、卸載工具包,而且安裝時能自動安裝相應的依賴包,同時還能使用不同的虛擬環境隔離不同要求的項目。

分析利器: 在 Anaconda 官網中是這麼宣傳自己的:適用於企業級大數據分析的Python工具。其包含了720多個數據科學相關的開源包,在數據可視化、機器學習、深度學習等多方面都有涉及。不僅可以做數據分析,甚至可以用在大數據和人工智慧領域。

解決了 是什麼 以及 為什麼 的問題後,下面讓我們看一下 怎麼做(How)

說明一下conda的設計理念——conda將幾乎所有的工具、第三方包都當做package對待,甚至包括python和conda自身!因此,conda打破了包管理與環境管理的約束,能非常方便地安裝各種版本python、各種package並方便地切換。

Anaconda中的重要組件

Anaconda Navigator :用於管理工具包和環境的圖形用戶界面,後續涉及的眾多管理命令也可以在 Navigator 中手工實現。

Jupyter notebook :基於web的互動式計算環境,可以編輯易於人們閱讀的文檔,用於展示數據分析的過程。

qtconsole :一個可執行 IPython 的仿終端圖形界面程序,相比 Python Shell 界面,qtconsole 可以直接顯示代碼生成的圖形,實現多行代碼輸入執行,以及內置許多有用的功能和函數。

spyder :一個使用Python語言、跨平台的、科學運算集成開發環境。Spyder的最大優點就是模仿MATLAB的「工作空間」。

Conda : Conda的包管理就比較好理解了,這部分功能與pip類似。

安裝Anaconda

Anaconda 可用於 Windows、Mac OS X 和 Linux。可以在官網上找到安裝程序和安裝說明

anaconda.com/download/

如果計算機上已經安裝了 Python,這不會有任何影響。實際上,腳本和程序使用的默認 Python 是 Anaconda 附帶的 Python。這裡需要注意的是選對自己操作系統對應的版本。安裝完後打開cmd,輸入conda list可以查看當前安裝的內容。輸入conda upgrade --all,可以更新默認環境下的所有包。並在提示是否更新的時候輸入y(Yes)以便讓更新繼續。初次安裝下的軟體包版本一般都比較老舊,因此提前更新可以避免未來不必要的問題。

本人使用的操作系統:Win10,前往anaconda官網下載對應的版本,本人選擇的是Python3.6 + Python 2.7(實際上下載一個即可,推薦3.6)

設置Path變數

默認安裝不會自動添加全局變數,如果有需求可以手動配置Path,以Anaconda2為例

# 將加入到PATH路徑D:ProgramsAnaconda2D:ProgramsAnaconda2Scripts# 在cmd輸入python -VPython 2.7.14 :: Anaconda, Inc.

python2和python3版本轉換

在win10環境下進行傻瓜式安裝。當安裝完成時,計算機便具備了Python3.6的環境,推薦使用 Anaconda Prompt 進入命令行

接下來,在cmd的環境下,輸入以下命令安裝Python2.7的環境

conda create -n python27 python=2.7 anaconda

上面的代碼創建了一個名為python27的python2.7的環境,最後一個參數表示安裝anaconda下python2.7的所有默認包,這個參數時可選的。

我們進入cmd環境,現在默認的python版本時python3.6,只需要一行簡單的代碼就可以轉為python2.7的環境

activate python27

此時本窗口下的python版本變為了python2.7,那麼你肯定猜到了恢復到python3.6的命令

deactivate python27

其實呢,一般沒有必要恢復到原環境。只要打開一個新的cmd窗口,默認的python版本就是python3.6

Anaconda 鏡像

這裡使用了清華大學開源軟體鏡像站tuna提供的資源,在此表示感謝

mirrors.tuna.tsinghua.edu.cn

Anaconda 安裝包可以到以下地址分流下載

mirrors.tuna.tsinghua.edu.cn

因為Anaconda.org的伺服器在國外,conda下載的速度經常很慢。可以設置國內的鏡像源來加速:

# TUNA 還提供了 Anaconda 倉庫的鏡像,運行以下命令即可添加 Anaconda Python 免費倉庫conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/# 設置搜索時顯示通道地址conda config --set show_channel_urls yes# 執行完上述命令後,會生成配置文件記錄著我們對conda的配置,直接手動創建、編輯該文件是相同的效果# Linux/Mac~/.condarc# WindowsC:UsersUSER_NAME.condarc# 運行測試一下吧conda install numpy

conda安裝django實踐

以下操作為 anaconda python3.6 環境下進入Anaconda Prompt安裝django1.11的實踐過程

# 在python3.6環境下進入Anaconda Prompt創建django1.x專用虛擬環境conda create -n django1.x# 激活專用虛擬環境activate django1.x# 查看conda當前django可用版本conda search djangoconda install django==1.11.10# 切換到虛擬環境家目錄cd C:UserswsgzaoAppDataLocalcondacondaenvsdjango1.x# 創建項目django-admin.py startproject myweb# 創建apppython manage.py startapp myapp# 啟動Django中的開發伺服器python manage.py runserver# 幫助文檔python manage.py -h# Django命令python manage.py <command> [options]

conda常用命令

最新版的conda是從site-packages文件夾中搜索已經安裝的包,不依賴於pip,因此可以顯示出通過各種方式安裝的包。conda將conda、python等都視為package,因此完全可以使用conda來管理conda和python的版本

# 列出所有已安裝的包conda list# 安裝軟體包,同時它會自動安裝此軟體包的依賴項 conda install package_name# 同時安裝多個包conda install numpy pandas# 安裝指定版本的包conda install python=2.7# 安裝離線包conda install /package-path/package-filename.tar.bz2# 卸載包conda remove package_name# 更新環境中的所有已安裝的包conda update/upgrade --all# 更新conda,保持conda最新conda update conda# 更新anacondaconda update anaconda# 更新pythonconda update python# 查看conda安裝信息conda info# 查看conda幫助conda help# 搜索可以安裝的包conda search package_name# 創建conda虛擬環境conda create -n env_name# 在這裡,-n env_name 設置環境的名稱(-n 是指名稱),而 list of packages 是要安裝在環境中的包的列表conda create -n env_name list of packages# 可以創建具有特定 Python 版本的環境conda create -n py2.7.14 python=2.7.14# 查看conda版本conda -V# 進入環境# linux 下用 source activate env_name# windows 下用activate env_name# 離開環境# linux 下用 source deactivate# windows 下用deactivate# 列出環境conda env list# 刪除環境conda env remove -n env_name# 導出環境將包保存為 YAML,輸出環境中的所有包的名稱(包括 Python 版本)conda env export > environment.yaml# 載入環境conda env create -f environment.yaml

推薦閱讀:

淺談地球文明未來的發展方向
有哪些日本台灣的室內設計網站?
比起在座的諸位 它才是一條真「索狗」
蘋果正在試圖掩蓋其5G數據機開發計劃的事實

TAG:Python | 科技 | Anaconda |