【入门基础】conda+jupyter玩转数据科学环境搭建
文章來(lái)源于Python大數(shù)據(jù)分析,作者費(fèi)弗里
本文示例yaml文件已上傳至我的Github倉(cāng)庫(kù):
https://github.com/CNFeffery/DataScienceStudyNotes[1]
1 簡(jiǎn)介
我們?cè)谑褂肞ython進(jìn)行數(shù)據(jù)分析時(shí),很多時(shí)候都在解決環(huán)境搭建的問(wèn)題,不同版本、依賴包等問(wèn)題經(jīng)常給數(shù)據(jù)科學(xué)工作流的搭建和運(yùn)轉(zhuǎn)帶來(lái)各種各樣令人頭疼的問(wèn)題。
本文就將基于筆者自己摸索出的經(jīng)驗(yàn),以geopandas環(huán)境的搭建為例,教你使用conda+jupyter輕松搞定環(huán)境的搭建、管理與拓展。
圖12 虛擬環(huán)境的搭建與使用
2.1 使用conda創(chuàng)建虛擬環(huán)境
以Windows操作系統(tǒng)為例,因?yàn)槿讨饕褂妹钚?#xff0c;所以其他系統(tǒng)方法類似,有少許語(yǔ)句有差異的地方遇到問(wèn)題時(shí)可以自行查找解決。
首先我們要解決的是環(huán)境的創(chuàng)建,第一步需要安裝conda服務(wù),這里我們有Anaconda和miniconda兩種方式。
本文選擇miniconda體積小巧,不會(huì)像Anaconda那樣自帶數(shù)量眾多的科學(xué)計(jì)算相關(guān)包而顯得臃腫。
有條件上外網(wǎng)的讀者朋友可以在conda官網(wǎng)[2]下載與你的操作系統(tǒng)對(duì)應(yīng)的安裝包,也可以在清華大學(xué)鏡像站-獲取下載鏈接-應(yīng)用軟件-Conda[3]中下載對(duì)應(yīng)的最新的安裝包:
圖2本文選擇的是從官網(wǎng)下載的最新版本4.8.2。
因?yàn)閙iniconda自帶Python,之后所有新環(huán)境的創(chuàng)建我們都可以通過(guò)conda來(lái)實(shí)施,所以建議你在安裝之前系統(tǒng)中不要保有其他Python環(huán)境。
下載完成之后直接打開安裝,一路可以按照默認(rèn)的選項(xiàng)繼續(xù),到圖3顯示的步驟時(shí)為了方便之后的使用建議都勾選上:
圖3完成安裝后我們進(jìn)入控制臺(tái)輸入conda --version檢查是否成功安裝:
C:\Users\hp>conda --version conda 4.8.2輸入conda env list查看當(dāng)前存在的所有環(huán)境:
C:\Users\hp>conda env list # conda environments: # base * C:\Conda可以看到我們當(dāng)前只有1個(gè)環(huán)境base,即miniconda自帶的Python。
因?yàn)閳D3中我們勾選了Register Miniconda3 as the system Python 3.7,所以在控制臺(tái)中直接輸入python可以得到下列結(jié)果:
C:\Users\hp>python Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32Warning: This Python interpreter is in a conda environment, but the environment has not been activated. Libraries may fail to load. To activate this environment please see https://conda.io/activationType "help", "copyright", "credits" or "license" for more information. >>> quit() # 退出C:\Users\hp>控制臺(tái)輸入conda list可以看到當(dāng)前僅有的base環(huán)境中僅有下列包:
C:\Users\hp>conda list # packages in environment at C:\Conda: # # Name Version Build Channel asn1crypto 1.3.0 py37_0 defaults ca-certificates 2020.1.1 0 defaults certifi 2019.11.28 py37_0 defaults cffi 1.14.0 py37h7a1dbc1_0 defaults chardet 3.0.4 py37_1003 defaults conda 4.8.2 py37_0 defaults conda-package-handling 1.6.0 py37h62dcd97_0 defaults console_shortcut 0.1.1 4 defaults cryptography 2.8 py37h7a1dbc1_0 defaults idna 2.8 py37_0 defaults menuinst 1.4.16 py37he774522_0 defaults openssl 1.1.1d he774522_4 defaults pip 20.0.2 py37_1 defaults powershell_shortcut 0.0.1 3 defaults pycosat 0.6.3 py37he774522_0 defaults pycparser 2.19 py37_0 defaults pyopenssl 19.1.0 py37_0 defaults pysocks 1.7.1 py37_0 defaults python 3.7.6 h60c2a47_2 defaults pywin32 227 py37he774522_1 defaults requests 2.22.0 py37_1 defaults ruamel_yaml 0.15.87 py37he774522_0 defaults setuptools 45.2.0 py37_0 defaults six 1.14.0 py37_0 defaults sqlite 3.31.1 he774522_0 defaults tqdm 4.42.1 py_0 defaults urllib3 1.25.8 py37_0 defaults vc 14.1 h0510ff6_4 defaults vs2015_runtime 14.16.27012 hf0eaf9b_1 defaults wheel 0.34.2 py37_0 defaults win_inet_pton 1.1.0 py37_0 defaults wincertstore 0.2 py37_0 defaults yaml 0.1.7 hc54c509_2 defaults接下來(lái)我們開始來(lái)搭建本文用于舉例說(shuō)明的geopandas環(huán)境,使用conda create -n 環(huán)境名稱 python=版本來(lái)創(chuàng)建新的環(huán)境。
譬如這里我們創(chuàng)建名為python_spatial的虛擬環(huán)境,Python版本選擇3.7:
C:\Users\hp>conda create -n python_spatial python=3.7遇到Proceed ([y]/n)?輸入y繼續(xù),等相關(guān)資源下載并安裝配置完成后,再次查看當(dāng)前存在的所有環(huán)境:
C:\Users\hp>conda env list # conda environments: # base * C:\Conda python_spatial C:\Conda\envs\python_spatial可以看到與之前相比多了我們剛剛創(chuàng)建好的python_spatial環(huán)境,使用conda activate 環(huán)境名稱來(lái)激活指定的環(huán)境:
C:\Users\hp>conda activate python_spatial(python_spatial) C:\Users\hp>可以發(fā)現(xiàn)這時(shí)命令行開頭多了(python_spatial),這代表我們已經(jīng)進(jìn)入激活的python_spatial環(huán)境中。
接著我們就可以使用conda命令在當(dāng)前環(huán)境中安裝geopandas,按照官網(wǎng)的推薦方式從conda-forge對(duì)應(yīng)的channel進(jìn)行安裝,執(zhí)行conda install --channel conda-forge geopandas。
遇到需要選擇的地方一樣地輸入y,這里依賴包較多,需要等待較長(zhǎng)時(shí)間,直到最后done出現(xiàn)表示安裝成功。
在控制臺(tái)中直接進(jìn)入python,檢查geopandas是否正確安裝:
(python_spatial) C:\Users\hp>python Python 3.7.7 (default, Mar 23 2020, 23:19:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32Type "help", "copyright", "credits" or "license" for more information. >>> import geopandas as gpd >>>至此,我們已經(jīng)完成了geopandas基礎(chǔ)環(huán)境的搭建,接下來(lái)我們來(lái)配置使用jupyter。
2.2 配置jupyter lab
類似conda,jupyter也分為jupyter notebook和jupyter lab,兩者核心功能都差不多。
但jupyter lab擁有更多的拓展功能,并且界面和操作方式也更加炫酷方便,所以本文選擇jupyter lab。
在上一節(jié)中創(chuàng)建好的python_spatial環(huán)境下使用conda install jupyterlab安裝基礎(chǔ)部分。
安裝結(jié)束之后,在python_spatial環(huán)境下可以通過(guò)執(zhí)行jupyter lab來(lái)打開它,在此之前需要先為jupyter lab配置虛擬環(huán)境,否則只能識(shí)別到默認(rèn)的base環(huán)境。
安裝ipykernel
退出虛擬環(huán)境后執(zhí)行conda install ipykernel。
為虛擬環(huán)境安裝ipykernel
執(zhí)行conda install -n python_spatial ipykernel。
激活虛擬環(huán)境&將虛擬環(huán)境寫入jupyter的kernel中
這時(shí)我們?cè)趈upyter lab中已經(jīng)可以切換到python_spatial環(huán)境了。
接下來(lái)為了使用jupyter lab的插件拓展,需要安裝nodejs。
我們?cè)趐ython_spatial下執(zhí)行conda install nodejs即可,完成安裝之后根據(jù)自己對(duì)插件功能的需要可以分別安裝不同的插件。
下面舉幾個(gè)常用的例子:
html交互部件插件
為了在jupyter lab中渲染一些html部件,譬如tqdm中的交互式進(jìn)度條,在虛擬環(huán)境下執(zhí)行下列命令:
pip install ipywidgets jupyter labextension install @jupyter-widgets/jupyterlab-manager完成后執(zhí)行jupyter lab,在打開的操作界面中notebook下點(diǎn)擊python_spatial創(chuàng)建新的notebook,執(zhí)行如下命令(請(qǐng)?zhí)崆鞍惭b好tqdm),可以看到出現(xiàn)了交互式的進(jìn)度條:
圖4目錄插件
在ipynb文件中可以用markdown編寫各級(jí)別標(biāo)題,在使用下列插件自動(dòng)生成目錄:
jupyter labextension install @jupyterlab/toc 圖5matplotlib交互式繪圖
使用matplotlib交互式繪圖模式:
pip install ipympl jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib安裝完成后就可以使用%matplotlib widget開啟交互式繪圖模式(請(qǐng)?zhí)崆鞍惭b好geopandas繪圖依賴包descartes):
圖6你也可以在側(cè)邊欄中發(fā)現(xiàn)更多的實(shí)用插件:
圖72.3 虛擬環(huán)境的備份和恢復(fù)
conda提供了將虛擬環(huán)境導(dǎo)出為yaml文件的功能,使得我們可以保留好不容易創(chuàng)建好的虛擬環(huán)境中的配置信息,格式如conda env export > 導(dǎo)出路徑\文件名.yml。
譬如我們導(dǎo)出前面創(chuàng)建好的python_spatial到所需路徑下:
(python_spatial) C:\Users\hp>conda env export > C:\Users\hp\Desktop\python_spatial.yml(python_spatial) C:\Users\hp>之后你可以在安裝好conda服務(wù)的其他機(jī)器上按照conda env create -n 新環(huán)境名稱 -f 路徑\文件名.yml。
譬如我們就在本機(jī)上用已經(jīng)導(dǎo)出的python_spatial.yml復(fù)制為新的虛擬環(huán)境,耐心等待之后conda會(huì)自動(dòng)完成前面所有我們手動(dòng)實(shí)現(xiàn)的步驟:
conda env create -n new_python_spatial -f C:\Users\hp\Desktop\python_spatial.yml之后只需要像前文中一樣執(zhí)行python -m ipykernel install --user --name new_python_spatial --display-name "new spatial"從而為jupyter lab添加新的虛擬環(huán)境的kernel信息。
在new_python_spatial環(huán)境下啟動(dòng)jupyter lab,這是我們可使用的環(huán)境變成了3個(gè):
圖82.4 虛擬環(huán)境的移除
使用conda remove -n 環(huán)境名稱 --all來(lái)移除已經(jīng)創(chuàng)建的環(huán)境。
譬如我們使用conda remove -n new_python_spatial -all將new_python_spatial移除之后,再次查看所有環(huán)境:
C:\Users\hp>conda env list # conda environments: # base * C:\Conda python_spatial C:\Conda\envs\python_spatial但這時(shí)會(huì)存在一個(gè)惱人的地方,我們這里只是移除了虛擬環(huán)境,但前面注冊(cè)到j(luò)upyter lab中的kernel還會(huì)顯示。
但實(shí)際上是沒(méi)有對(duì)應(yīng)環(huán)境存在的,所以強(qiáng)行選擇已經(jīng)移除的環(huán)境對(duì)應(yīng)的kernel會(huì)報(bào)錯(cuò):
圖9控制臺(tái)中使用jupyter kernelspec list查看信息:
C:\Users\hp>jupyter kernelspec list Available kernels:new_python_spatial C:\Users\hp\AppData\Roaming\jupyter\kernels\new_python_spatialpython_spatial C:\Users\hp\AppData\Roaming\jupyter\kernels\python_spatialpython3 C:\Conda\share\jupyter\kernels\python3接著使用jupyter kernelspec remove kernel名稱對(duì)其進(jìn)行移除即可:
C:\Users\hp>jupyter kernelspec remove new_python_spatial Kernel specs to remove:new_python_spatial C:\Users\hp\AppData\Roaming\jupyter\kernels\new_python_spatial Remove 1 kernel specs [y/N]: y [RemoveKernelSpec] Removed C:\Users\hp\AppData\Roaming\jupyter\kernels\new_python_spatial之后在啟動(dòng)jupyter lab就會(huì)發(fā)現(xiàn)殘余的kernel跟著消失了。
而如果想要修改某個(gè)kernel的顯示名稱,可以同樣在對(duì)應(yīng)的虛擬環(huán)境下使用jupyter kernelspec list查看每個(gè)kernel以及其對(duì)應(yīng)的路徑,前往路徑下把kernel.json中display_name鍵對(duì)應(yīng)的值改成新名稱即可。
以上就是本文的全部?jī)?nèi)容。
對(duì)應(yīng)的yaml文件已上傳至文章開頭的Github倉(cāng)庫(kù)中,你可以直接基于它創(chuàng)建對(duì)應(yīng)本文python_spatial的虛擬環(huán)境。
如有疑問(wèn)之處可以留言或在Github倉(cāng)庫(kù)下創(chuàng)建issues向我提問(wèn)。
參考資料
[1]
https://github.com/CNFeffery/DataScienceStudyNotes: https://github.com/CNFeffery/DataScienceStudyNotes
[2]conda官網(wǎng): https://docs.conda.io/en/latest/miniconda.html
[3]清華大學(xué)鏡像站-獲取下載鏈接-應(yīng)用軟件-Conda: https://mirrors.tuna.tsinghua.edu.cn/
-END-
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)在線手冊(cè)AI基礎(chǔ)下載(pdf更新到25集)本站qq群1003271085,加入微信群請(qǐng)回復(fù)“加群”獲取一折本站知識(shí)星球優(yōu)惠券,請(qǐng)回復(fù)“知識(shí)星球”喜歡文章,點(diǎn)個(gè)在看
總結(jié)
以上是生活随笔為你收集整理的【入门基础】conda+jupyter玩转数据科学环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数据挖掘】视频版权检测优胜解决方案
- 下一篇: 【论文投稿】计算机学科部分核心期刊投稿攻