摘要:按目前的發(fā)展趨勢(shì),未來的主流版為。這里介紹一個(gè)強(qiáng)大的軟件,它實(shí)現(xiàn)和兩個(gè)版本的共存,并且可以相互轉(zhuǎn)換。應(yīng)用程序是包和環(huán)境管理器。另外值得一提的是,并不僅僅管理的工具包,它也能安裝非的包。實(shí)際上,腳本和程序使用的默認(rèn)是附帶的。
前言
初學(xué)Python時(shí),總是被python的兩個(gè)不太兼容的版本搞得頭昏腦脹。按目前的發(fā)展趨勢(shì),python未來的主流版為python3。但是我們經(jīng)常會(huì)遇到一些很有意思代碼使用的是python2版本。于是我們需要同時(shí)擁有python2和python3的運(yùn)行環(huán)境。這里介紹一個(gè)強(qiáng)大的軟件Anaconda,它實(shí)現(xiàn)python2和python3兩個(gè)版本的共存,并且可以相互轉(zhuǎn)換。Anaconda 是一個(gè)用于科學(xué)計(jì)算的 Python 發(fā)行版,支持 Linux, Mac, Windows, 包含了眾多流行的科學(xué)計(jì)算、數(shù)據(jù)分析的 Python 包。
使用Anaconda輕松解決Python2和Python3共存更新歷史
2018年05月04日 - 初稿
閱讀原文 - https://wsgzao.github.io/post...
擴(kuò)展閱讀
Anaconda - https://anaconda.org/
Anaconda 實(shí)際上是一個(gè)軟件發(fā)行版,它附帶了 conda、Python 和多個(gè)科學(xué)包及其依賴項(xiàng)。應(yīng)用程序 conda 是包和環(huán)境管理器。Anaconda 的下載文件比較大(約 500 MB),因?yàn)樗綆Я?Python 中最常用的數(shù)據(jù)科學(xué)包。如果只需要某些包,或者需要節(jié)省帶寬或存儲(chǔ)空間,也可以使用 Miniconda 這個(gè)較小的發(fā)行版(僅包含 conda 和 Python)。
什么是 AnacondaAnaconda是專注于數(shù)據(jù)分析的Python發(fā)行版本,包含了conda、Python等多個(gè)科學(xué)包及其依賴項(xiàng)。作為好奇寶寶的你是不是發(fā)現(xiàn)了一個(gè)新名詞?conda,那么你一定會(huì)問 conda 又是什么呢?
什么是 condaconda 是開源包(packages)和虛擬環(huán)境(environment)的管理系統(tǒng)
packages 管理:?可以使用 conda 來安裝、更新 、卸載工具包 ,并且它更關(guān)注于數(shù)據(jù)科學(xué)相關(guān)的工具包。在安裝 anaconda 時(shí)就預(yù)先集成了像 Numpy、Scipy、 pandas、Scikit-learn 這些在數(shù)據(jù)分析中常用的包。另外值得一提的是,conda 并不僅僅管理Python的工具包,它也能安裝非python的包。比如在新版的 Anaconda 中就可以安裝R語言的集成開發(fā)環(huán)境 Rstudio。
虛擬環(huán)境管理:?在conda中可以建立多個(gè)虛擬環(huán)境,用于隔離不同項(xiàng)目所需的不同版本的工具包,以防止版本上的沖突。對(duì)糾結(jié)于 Python 版本的同學(xué)們,我們也可以建立 Python2 和 Python3 兩個(gè)環(huán)境,來分別運(yùn)行不同版本的 Python 代碼。
知道?是什么(what)?的同時(shí),我們也需要問一問?為什么(why)。那么,為什么要選擇用Anaconda呢?
Anaconda 的優(yōu)點(diǎn)Anaconda的優(yōu)點(diǎn)總結(jié)起來就八個(gè)字:省時(shí)省心、分析利器。
省時(shí)省心:?Anaconda通過管理工具包、開發(fā)環(huán)境、Python版本,大大簡(jiǎn)化了你的工作流程。不僅可以方便地安裝、更新、卸載工具包,而且安裝時(shí)能自動(dòng)安裝相應(yīng)的依賴包,同時(shí)還能使用不同的虛擬環(huán)境隔離不同要求的項(xiàng)目。
分析利器:?在?Anaconda?官網(wǎng)中是這么宣傳自己的:適用于企業(yè)級(jí)大數(shù)據(jù)分析的Python工具。其包含了720多個(gè)數(shù)據(jù)科學(xué)相關(guān)的開源包,在數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等多方面都有涉及。不僅可以做數(shù)據(jù)分析,甚至可以用在大數(shù)據(jù)和人工智能領(lǐng)域。
解決了?是什么?以及?為什么?的問題后,下面讓我們看一下?怎么做(How)。
說明一下conda的設(shè)計(jì)理念——conda將幾乎所有的工具、第三方包都當(dāng)做package對(duì)待,甚至包括python和conda自身!因此,conda打破了包管理與環(huán)境管理的約束,能非常方便地安裝各種版本python、各種package并方便地切換。
Anaconda中的重要組件Anaconda Navigator?:用于管理工具包和環(huán)境的圖形用戶界面,后續(xù)涉及的眾多管理命令也可以在 Navigator 中手工實(shí)現(xiàn)。
Jupyter notebook?:基于web的交互式計(jì)算環(huán)境,可以編輯易于人們閱讀的文檔,用于展示數(shù)據(jù)分析的過程。
qtconsole?:一個(gè)可執(zhí)行 IPython 的仿終端圖形界面程序,相比 Python Shell 界面,qtconsole 可以直接顯示代碼生成的圖形,實(shí)現(xiàn)多行代碼輸入執(zhí)行,以及內(nèi)置許多有用的功能和函數(shù)。
spyder?:一個(gè)使用Python語言、跨平臺(tái)的、科學(xué)運(yùn)算集成開發(fā)環(huán)境。Spyder的最大優(yōu)點(diǎn)就是模仿MATLAB的“工作空間”。
Conda : Conda的包管理就比較好理解了,這部分功能與pip類似。
安裝AnacondaAnaconda 可用于 Windows、Mac OS X 和 Linux。可以在官網(wǎng)上找到安裝程序和安裝說明
https://www.anaconda.com/down...
如果計(jì)算機(jī)上已經(jīng)安裝了 Python,這不會(huì)有任何影響。實(shí)際上,腳本和程序使用的默認(rèn) Python 是 Anaconda 附帶的 Python。這里需要注意的是選對(duì)自己操作系統(tǒng)對(duì)應(yīng)的版本。安裝完后打開cmd,輸入conda list可以查看當(dāng)前安裝的內(nèi)容。輸入conda upgrade --all,可以更新默認(rèn)環(huán)境下的所有包。并在提示是否更新的時(shí)候輸入y(Yes)以便讓更新繼續(xù)。初次安裝下的軟件包版本一般都比較老舊,因此提前更新可以避免未來不必要的問題。
本人使用的操作系統(tǒng):Win10,前往anaconda官網(wǎng)下載對(duì)應(yīng)的版本,本人選擇的是Python3.6 + Python 2.7(實(shí)際上下載一個(gè)即可,推薦3.6)
設(shè)置Path變量默認(rèn)安裝不會(huì)自動(dòng)添加全局變量,如果有需求可以手動(dòng)配置Path,以Anaconda2為例
# 將加入到PATH路徑 D:ProgramsAnaconda2 D:ProgramsAnaconda2Scripts # 在cmd輸入 python -V Python 2.7.14 :: Anaconda, Inc.python2和python3版本轉(zhuǎn)換
在win10環(huán)境下進(jìn)行傻瓜式安裝。當(dāng)安裝完成時(shí),計(jì)算機(jī)便具備了Python3.6的環(huán)境,推薦使用 Anaconda Prompt 進(jìn)入命令行
接下來,在cmd的環(huán)境下,輸入以下命令安裝Python2.7的環(huán)境
conda create -n python27 python=2.7 anaconda
上面的代碼創(chuàng)建了一個(gè)名為python27的python2.7的環(huán)境,最后一個(gè)參數(shù)表示安裝anaconda下python2.7的所有默認(rèn)包,這個(gè)參數(shù)時(shí)可選的。
我們進(jìn)入cmd環(huán)境,現(xiàn)在默認(rèn)的python版本時(shí)python3.6,只需要一行簡(jiǎn)單的代碼就可以轉(zhuǎn)為python2.7的環(huán)境
activate python27
此時(shí)本窗口下的python版本變?yōu)榱藀ython2.7,那么你肯定猜到了恢復(fù)到python3.6的命令
deactivate python27
其實(shí)呢,一般沒有必要恢復(fù)到原環(huán)境。只要打開一個(gè)新的cmd窗口,默認(rèn)的python版本就是python3.6
Anaconda 鏡像這里使用了清華大學(xué)開源軟件鏡像站tuna提供的資源,在此表示感謝
https://mirrors.tuna.tsinghua...
Anaconda 安裝包可以到以下地址分流下載
https://mirrors.tuna.tsinghua...
因?yàn)锳naconda.org的服務(wù)器在國(guó)外,conda下載的速度經(jīng)常很慢??梢栽O(shè)置國(guó)內(nèi)的鏡像源來加速:
# TUNA 還提供了 Anaconda 倉(cāng)庫(kù)的鏡像,運(yùn)行以下命令即可添加 Anaconda Python 免費(fèi)倉(cāng)庫(kù) 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/ # 設(shè)置搜索時(shí)顯示通道地址 conda config --set show_channel_urls yes # 執(zhí)行完上述命令后,會(huì)生成配置文件記錄著我們對(duì)conda的配置,直接手動(dòng)創(chuàng)建、編輯該文件是相同的效果 # Linux/Mac ~/.condarc # Windows C:UsersUSER_NAME.condarc # 運(yùn)行測(cè)試一下吧 conda install numpyconda安裝django實(shí)踐
以下操作為 anaconda python3.6 環(huán)境下進(jìn)入Anaconda Prompt安裝django1.11的實(shí)踐過程
# 在python3.6環(huán)境下進(jìn)入Anaconda Prompt創(chuàng)建django1.x專用虛擬環(huán)境 conda create -n django1.x # 激活專用虛擬環(huán)境 activate django1.x # 查看conda當(dāng)前django可用版本 conda search django conda install django==1.11.10 # 切換到虛擬環(huán)境家目錄 cd C:UserswsgzaoAppDataLocalcondacondaenvsdjango1.x # 創(chuàng)建項(xiàng)目 django-admin.py startproject myweb # 創(chuàng)建app python manage.py startapp myapp # 啟動(dòng)Django中的開發(fā)服務(wù)器 python manage.py runserver # 幫助文檔 python manage.py -h # Django命令 python manage.pyconda常用命令[options]
最新版的conda是從site-packages文件夾中搜索已經(jīng)安裝的包,不依賴于pip,因此可以顯示出通過各種方式安裝的包。conda將conda、python等都視為package,因此完全可以使用conda來管理conda和python的版本
# 列出所有已安裝的包 conda list # 安裝軟件包,同時(shí)它會(huì)自動(dòng)安裝此軟件包的依賴項(xiàng) conda install package_name # 同時(shí)安裝多個(gè)包 conda install numpy pandas # 安裝指定版本的包 conda install python=2.7 # 安裝離線包 conda install /package-path/package-filename.tar.bz2 # 卸載包 conda remove package_name # 更新環(huán)境中的所有已安裝的包 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 # 創(chuàng)建conda虛擬環(huán)境 conda create -n env_name # 在這里,-n env_name 設(shè)置環(huán)境的名稱(-n 是指名稱),而 list of packages 是要安裝在環(huán)境中的包的列表 conda create -n env_name list of packages # 可以創(chuàng)建具有特定 Python 版本的環(huán)境 conda create -n py2.7.14 python=2.7.14 # 查看conda版本 conda -V # 進(jìn)入環(huán)境 # linux 下用 source activate env_name # windows 下用 activate env_name # 離開環(huán)境 # linux 下用 source deactivate # windows 下用 deactivate # 列出環(huán)境 conda env list # 刪除環(huán)境 conda env remove -n env_name # 導(dǎo)出環(huán)境將包保存為 YAML,輸出環(huán)境中的所有包的名稱(包括 Python 版本) conda env export > environment.yaml # 加載環(huán)境 conda env create -f environment.yaml
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41679.html
摘要:為了安裝科學(xué)計(jì)算環(huán)境,控制好版本,今天上午總算折騰好了。切換和使用新的虛擬環(huán)境這樣就能切換為這個(gè)版本的虛擬環(huán)境。通過輸入查看現(xiàn)在版本,可以發(fā)現(xiàn)處于虛擬環(huán)境下了。指定包的版本多個(gè)版本并存,尤其是和的并存。下面用創(chuàng)建一個(gè)名叫的版本為的環(huán)境。 為了安裝Anaconda科學(xué)計(jì)算環(huán)境,控制好python版本,今天上午總算折騰好了。 學(xué)習(xí)python有時(shí)希望在python2.7環(huán)境下,有時(shí)希望在...
摘要:雖然寶塔自帶了管理器,但是這個(gè)玩意并不好用。設(shè)置為默認(rèn)版本的默認(rèn)路徑,在下面。這里也可以看到寶塔的默認(rèn)版本為,需要使用命令才可以看到。此時(shí)的和也已經(jīng)共存。centos7的默認(rèn)python版本為2.7,但是2.7這個(gè)版本太老了,很多童鞋想升級(jí)為高版本。雖然寶塔自帶了python管理器,但是這個(gè)玩意并不好用。此外centos的很多命令是基于py2.7,所以你升級(jí)python,請(qǐng)不要?jiǎng)h除舊版本,新...
摘要:所以,應(yīng)該直接了當(dāng)?shù)陌惭b,其中也會(huì)自動(dòng)安裝上,作為其運(yùn)行的。這只是一開始,之后還有里各種找不到外部安裝的的情況。終于,意識(shí)到這些方法都是錯(cuò)誤的思路。這才知道原來是無法識(shí)別。 為什么要用IPython/Jupyter? python里面調(diào)試確實(shí)有點(diǎn)煩惱,尤其是在vim里,想要嘗試一些簡(jiǎn)單的編碼問題,實(shí)在是有點(diǎn)麻煩,不想到命令行模式一行一行執(zhí)行,也不想再新建一個(gè)文件測(cè)試一個(gè)簡(jiǎn)單的功能。 而...
摘要:所以,應(yīng)該直接了當(dāng)?shù)陌惭b,其中也會(huì)自動(dòng)安裝上,作為其運(yùn)行的。這只是一開始,之后還有里各種找不到外部安裝的的情況。終于,意識(shí)到這些方法都是錯(cuò)誤的思路。這才知道原來是無法識(shí)別。 為什么要用IPython/Jupyter? python里面調(diào)試確實(shí)有點(diǎn)煩惱,尤其是在vim里,想要嘗試一些簡(jiǎn)單的編碼問題,實(shí)在是有點(diǎn)麻煩,不想到命令行模式一行一行執(zhí)行,也不想再新建一個(gè)文件測(cè)試一個(gè)簡(jiǎn)單的功能。 而...
閱讀 2850·2023-04-26 02:23
閱讀 1602·2021-11-11 16:55
閱讀 3161·2021-10-19 11:47
閱讀 3375·2021-09-22 15:15
閱讀 1989·2019-08-30 15:55
閱讀 1050·2019-08-29 15:43
閱讀 1305·2019-08-29 13:16
閱讀 2206·2019-08-29 12:38