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

裝載:https://wsgzao.github.io/post/anaconda/

文章目錄

  1. 1. 前言

  2. 2. 更新歷史

  3. 3. 爲什麼選擇Anaconda

    1. 3.1. 什麼是 Anaconda

    2. 3.2. 什麼是 conda

    3. 3.3. Anaconda 的優點

    4. 3.4. Anaconda中的重要組件

  4. 4. 安裝Anaconda

    1. 4.1. 設置Path變量

    2. 4.2. python2和python3版本轉換

    3. 4.3. Anaconda 鏡像

  5. 5. conda安裝django實踐

  6. 6. conda常用命令

  7. 7. anaconda與vscode整合

前言

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

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

更新歷史

2018年05月04日 - 初稿

閱讀原文 - https://wsgzao.github.io/post/anaconda/

擴展閱讀

Anaconda - https://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。可以在官網上找到安裝程序和安裝說明
https://www.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:\Programs\Anaconda2
D:\Programs\Anaconda2\Scripts

# 在cmd輸入
python -V
Python 2.7.14 :: Anaconda, Inc.

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

接下來,在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提供的資源,在此表示感謝

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

Anaconda 安裝包可以到以下地址分流下載
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

因爲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

# Windows
C:\Users\USER_NAME\.condarc

# 運行測試一下吧
conda install numpy

原始.condarc


image.png

修改改後.condarc


image.png



常見問題:conda無法安裝更新,報錯內容如下:

CondaHTTPError: HTTP 000 CONNECTION FAILED for url https://repo.anaconda.com/pkgs/free/win-64/repodata.json.bz2
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.

SSLError(MaxRetryError(‘HTTPSConnectionPool(host=\’repo.anaconda.com\’, port=443): Max retries exceeded with url: /pkgs/free/win-64/repodata.json.bz2 (Caused by SSLError(SSLError(“bad handshake: SysCallError(10054, \’WSAECONNRESET\’)”,),))’,),)

A reportable application error has occurred. Conda has prepared the above report.
If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers?

# 編輯.condarc註釋defalts
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#  - defaults
ssl_verify: true
show_channel_urls: true



conda安裝django實踐

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

# 在python3.6環境下進入Anaconda Prompt創建django1.x專用虛擬環境
conda create -n django1.x
# 激活專用虛擬環境
conda activate django1.x
# 查看conda當前django可用版本
conda search django
conda install django==1.11.10
# 切換到虛擬環境家目錄
cd C:\Users\wsgzao\AppData\Local\conda\conda\envs\django1.x
# 創建項目
django-admin.py startproject myweb
# 創建app
python 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
# 更新anaconda
conda update anaconda
# 更新python
conda 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

anaconda與vscode整合

打開vscode,選擇文件-首選項-設置,搜索python.pythonPath

{
    "editor.minimap.enabled": true,
    "editor.renderControlCharacters": false,
    "editor.renderWhitespace": "all",
    "python.disablePromptForFeatures": [
        "pylint"
    ],
    "python.pythonPath": "C:\\ProgramData\\Anaconda3",
    "workbench.iconTheme": "vscode-icons"
}







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章