簡體   English   中英

如何在Jupyter Notebook中選擇您的conda環境

[英]How to choose your conda environment in Jupyter Notebook

我使用Python 3.7(根環境)安裝了Anaconda 5.3。
之后,我使用Python 3.6創建了一個新環境(py36)

我用activate py36激活了新環境
conda env list顯示該環境處於活動狀態。

但是,當我開始Jupyter筆記本電腦(從與巨蟒提示jupyter notebook ),它似乎用root environemt,沒有激活的環境。

如何在新的創建環境(py36)中使用Jupyter Notebook?

@Ista所述,該文檔提供了使用筆記本擴展程序的簡單解決方案。

conda install nb_conda

安裝后,您可以在Jupyter Notebook中選擇從Jupyter Notebook的“內核”菜單中“更改內核”。

我設法在類似的問題中找到解決方案。 問題在於IPython不支持virtualenv ,因此一種變通方法(我覺得最舒服的一種)是指定自定義IPython內核,以避免為每個virtualenv(或anaconda環境)安裝一個Jupyter Notebook。 。

Jupyter依賴於一些“內核”(對在哪里可以找到python二進制文件的定義),這些內核存儲在您的操作系統中。 這些文件是這樣的:

{
 "display_name": "NameOfTheKernel", 
 "language": "python", 
 "argv": [
  "/usr/bin/python", 
  "-m", 
  "ipykernel_launcher", 
  "-f", 
  "{connection_file}"
 ]

/usr/bin/python是將要執行的python二進制文件的路徑。 但是,由於這些內核是由Jupyter在您的計算機中定義的,因此在您安裝其他一些環境時,它們不會更新(anaconda或virtualenv就是這種情況)。 我發現最簡單的方法是為您使用的每個環境定義一個自定義內核。 同樣,這樣做是因為您要直接使用環境,因此每次使用環境時都需要激活它。

這個想法是定義一個自定義內核,以便Jupyter可以“看到”您使用anaconda創建的環境。 為此,請在bash中執行以下行:

ipython kernel install --user --name=NameOfTheKernel

實際上,“ NameOfTheKernel”並不重要。 如果您沒有ipython軟件包,請通過sudo apt install或其他方式通過pip,anaconda進行sudo apt install

這行內容是定義一個將由jupyter檢測到的自定義內核。 為了說明起見,在Ubuntu中, /home/USERNAME/.local/share/jupyter使用以下數據結構存儲在文件夾/home/USERNAME/.local/share/jupyter

/home/USERNAME/.local/share/jupyter/kernels/
└── nameofthekernel
    ├── kernel.json
    ├── logo-32x32.png
    └── logo-64x64.png

安裝內核后,您必須:

1)知道anaconda在哪里安裝了環境。 一種簡單的方法是在anaconda中激活您的環境,然后在終端中編寫“哪個python”。 這將顯示二進制文件的完整路徑。

2)在剛創建的jupyter內核中寫入該路徑。 例如使用羽毛:

pluma /home/USERNAME/.local/share/jupyter/kernels/nameofthekernel/kernel.json

然后,用anaconda代替/usr/bin/python所安裝的python二進制文件的路徑。

此后,如果Jupyter正在運行,請重新啟動它。 這樣,下次打開Jupyter時,可以更改內核(在筆記本電腦中,上部的選項卡之一),並且您將使用您的環境以及該環境旁邊安裝的所有內容。

[TL; DR] 我是用pip做到的 ,但是anaconda的步驟大致相同。 這些步驟是:

#CREATE THE IPYTHON KERNELS
ipython kernel install --user --name=NameOfKernel
#IF PYTHON2 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/bin/python27|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
#IF PYTHON3 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/bin/python36|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json

或者,如果您正在使用環境:

#CREATE THE IPYTHON KERNELS
ipython kernel install --user --name=NameOfKernel
#IF PYTHON2 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/envs/nameofenvironment/python27|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
#IF PYTHON3 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/envs/nameofenvironment/python36|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json

注意 :我沒有安裝CONDA來測試該解決方案,因此通往實際Python Binaries的路徑可能會發生變化。 但是,步驟相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM