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

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

文章目錄python

  1. 1. 前言linux

  2. 2. 更新歷史git

  3. 3. 爲何選擇Anacondagithub

    1. 3.1. 什麼是 Anacondaweb

    2. 3.2. 什麼是 condadjango

    3. 3.3. Anaconda 的優勢json

    4. 3.4. Anaconda中的重要組件windows

  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"
}
相關文章
相關標籤/搜索