【入门基础】conda+jupyter玩转数据科学环境搭建
文章來源于Python大數據分析,作者費弗里
本文示例yaml文件已上傳至我的Github倉庫:
https://github.com/CNFeffery/DataScienceStudyNotes[1]
1 簡介
我們在使用Python進行數據分析時,很多時候都在解決環境搭建的問題,不同版本、依賴包等問題經常給數據科學工作流的搭建和運轉帶來各種各樣令人頭疼的問題。
本文就將基于筆者自己摸索出的經驗,以geopandas環境的搭建為例,教你使用conda+jupyter輕松搞定環境的搭建、管理與拓展。
圖12 虛擬環境的搭建與使用
2.1 使用conda創建虛擬環境
以Windows操作系統為例,因為全程主要使用命令行,所以其他系統方法類似,有少許語句有差異的地方遇到問題時可以自行查找解決。
首先我們要解決的是環境的創建,第一步需要安裝conda服務,這里我們有Anaconda和miniconda兩種方式。
本文選擇miniconda體積小巧,不會像Anaconda那樣自帶數量眾多的科學計算相關包而顯得臃腫。
有條件上外網的讀者朋友可以在conda官網[2]下載與你的操作系統對應的安裝包,也可以在清華大學鏡像站-獲取下載鏈接-應用軟件-Conda[3]中下載對應的最新的安裝包:
圖2本文選擇的是從官網下載的最新版本4.8.2。
因為miniconda自帶Python,之后所有新環境的創建我們都可以通過conda來實施,所以建議你在安裝之前系統中不要保有其他Python環境。
下載完成之后直接打開安裝,一路可以按照默認的選項繼續,到圖3顯示的步驟時為了方便之后的使用建議都勾選上:
圖3完成安裝后我們進入控制臺輸入conda --version檢查是否成功安裝:
C:\Users\hp>conda --version conda 4.8.2輸入conda env list查看當前存在的所有環境:
C:\Users\hp>conda env list # conda environments: # base * C:\Conda可以看到我們當前只有1個環境base,即miniconda自帶的Python。
因為圖3中我們勾選了Register Miniconda3 as the system Python 3.7,所以在控制臺中直接輸入python可以得到下列結果:
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>控制臺輸入conda list可以看到當前僅有的base環境中僅有下列包:
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接下來我們開始來搭建本文用于舉例說明的geopandas環境,使用conda create -n 環境名稱 python=版本來創建新的環境。
譬如這里我們創建名為python_spatial的虛擬環境,Python版本選擇3.7:
C:\Users\hp>conda create -n python_spatial python=3.7遇到Proceed ([y]/n)?輸入y繼續,等相關資源下載并安裝配置完成后,再次查看當前存在的所有環境:
C:\Users\hp>conda env list # conda environments: # base * C:\Conda python_spatial C:\Conda\envs\python_spatial可以看到與之前相比多了我們剛剛創建好的python_spatial環境,使用conda activate 環境名稱來激活指定的環境:
C:\Users\hp>conda activate python_spatial(python_spatial) C:\Users\hp>可以發現這時命令行開頭多了(python_spatial),這代表我們已經進入激活的python_spatial環境中。
接著我們就可以使用conda命令在當前環境中安裝geopandas,按照官網的推薦方式從conda-forge對應的channel進行安裝,執行conda install --channel conda-forge geopandas。
遇到需要選擇的地方一樣地輸入y,這里依賴包較多,需要等待較長時間,直到最后done出現表示安裝成功。
在控制臺中直接進入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 >>>至此,我們已經完成了geopandas基礎環境的搭建,接下來我們來配置使用jupyter。
2.2 配置jupyter lab
類似conda,jupyter也分為jupyter notebook和jupyter lab,兩者核心功能都差不多。
但jupyter lab擁有更多的拓展功能,并且界面和操作方式也更加炫酷方便,所以本文選擇jupyter lab。
在上一節中創建好的python_spatial環境下使用conda install jupyterlab安裝基礎部分。
安裝結束之后,在python_spatial環境下可以通過執行jupyter lab來打開它,在此之前需要先為jupyter lab配置虛擬環境,否則只能識別到默認的base環境。
安裝ipykernel
退出虛擬環境后執行conda install ipykernel。
為虛擬環境安裝ipykernel
執行conda install -n python_spatial ipykernel。
激活虛擬環境&將虛擬環境寫入jupyter的kernel中
這時我們在jupyter lab中已經可以切換到python_spatial環境了。
接下來為了使用jupyter lab的插件拓展,需要安裝nodejs。
我們在python_spatial下執行conda install nodejs即可,完成安裝之后根據自己對插件功能的需要可以分別安裝不同的插件。
下面舉幾個常用的例子:
html交互部件插件
為了在jupyter lab中渲染一些html部件,譬如tqdm中的交互式進度條,在虛擬環境下執行下列命令:
pip install ipywidgets jupyter labextension install @jupyter-widgets/jupyterlab-manager完成后執行jupyter lab,在打開的操作界面中notebook下點擊python_spatial創建新的notebook,執行如下命令(請提前安裝好tqdm),可以看到出現了交互式的進度條:
圖4目錄插件
在ipynb文件中可以用markdown編寫各級別標題,在使用下列插件自動生成目錄:
jupyter labextension install @jupyterlab/toc 圖5matplotlib交互式繪圖
使用matplotlib交互式繪圖模式:
pip install ipympl jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib安裝完成后就可以使用%matplotlib widget開啟交互式繪圖模式(請提前安裝好geopandas繪圖依賴包descartes):
圖6你也可以在側邊欄中發現更多的實用插件:
圖72.3 虛擬環境的備份和恢復
conda提供了將虛擬環境導出為yaml文件的功能,使得我們可以保留好不容易創建好的虛擬環境中的配置信息,格式如conda env export > 導出路徑\文件名.yml。
譬如我們導出前面創建好的python_spatial到所需路徑下:
(python_spatial) C:\Users\hp>conda env export > C:\Users\hp\Desktop\python_spatial.yml(python_spatial) C:\Users\hp>之后你可以在安裝好conda服務的其他機器上按照conda env create -n 新環境名稱 -f 路徑\文件名.yml。
譬如我們就在本機上用已經導出的python_spatial.yml復制為新的虛擬環境,耐心等待之后conda會自動完成前面所有我們手動實現的步驟:
conda env create -n new_python_spatial -f C:\Users\hp\Desktop\python_spatial.yml之后只需要像前文中一樣執行python -m ipykernel install --user --name new_python_spatial --display-name "new spatial"從而為jupyter lab添加新的虛擬環境的kernel信息。
在new_python_spatial環境下啟動jupyter lab,這是我們可使用的環境變成了3個:
圖82.4 虛擬環境的移除
使用conda remove -n 環境名稱 --all來移除已經創建的環境。
譬如我們使用conda remove -n new_python_spatial -all將new_python_spatial移除之后,再次查看所有環境:
C:\Users\hp>conda env list # conda environments: # base * C:\Conda python_spatial C:\Conda\envs\python_spatial但這時會存在一個惱人的地方,我們這里只是移除了虛擬環境,但前面注冊到jupyter lab中的kernel還會顯示。
但實際上是沒有對應環境存在的,所以強行選擇已經移除的環境對應的kernel會報錯:
圖9控制臺中使用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名稱對其進行移除即可:
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之后在啟動jupyter lab就會發現殘余的kernel跟著消失了。
而如果想要修改某個kernel的顯示名稱,可以同樣在對應的虛擬環境下使用jupyter kernelspec list查看每個kernel以及其對應的路徑,前往路徑下把kernel.json中display_name鍵對應的值改成新名稱即可。
以上就是本文的全部內容。
對應的yaml文件已上傳至文章開頭的Github倉庫中,你可以直接基于它創建對應本文python_spatial的虛擬環境。
如有疑問之處可以留言或在Github倉庫下創建issues向我提問。
參考資料
[1]
https://github.com/CNFeffery/DataScienceStudyNotes: https://github.com/CNFeffery/DataScienceStudyNotes
[2]conda官網: https://docs.conda.io/en/latest/miniconda.html
[3]清華大學鏡像站-獲取下載鏈接-應用軟件-Conda: https://mirrors.tuna.tsinghua.edu.cn/
-END-
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的【入门基础】conda+jupyter玩转数据科学环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】视频版权检测优胜解决方案
- 下一篇: 【论文投稿】计算机学科部分核心期刊投稿攻