web-dev-qa-db-ja.com

Jupyter Notebookでconda環境を選択する方法

Python 3.7(ルート環境)でAnaconda 5.3をインストールしました。
その後、Python 3.6を使用して新しい環境(py36)を作成しました

activate py36で新しい環境をアクティブ化しました
conda env listは、環境がアクティブであることを示しています。

しかし、Jupyter Notebook(jupyter notebookを使用したAnacondaプロンプトから)を起動すると、アクティブ化された環境ではなく、ルート環境を使用しているようです。

新しい作成環境(py36)でJupyter Notebookを使用するにはどうすればよいですか?

6
Rene

@ Ista で述べたように、ドキュメントはノートブック拡張機能を使用した簡単なソリューションを提供します。

conda install nb_conda

インストール後、Jupyter Notebookの[Kernel]メニューから、Jupyter Notebookで[カーネルを変更]を選択できます。

1
Rene

私は同様の問題でこれに対する解決策を見つけることができました。問題は、IPythonが virtualenv-aware ではないことです。そのため、回避策(私が最も快適であることがわかったもの)は、カスタムIPythonカーネルを指定して、virtualenv(またはアナコンダ環境、あなたの場合)。

Jupyterは、OSのどこかに格納されているいくつかの「カーネル」(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パッケージがない場合は、pip、anaconda、Sudo apt installなどを使用してインストールします。

この行で行うことは、jupyterによって検出されるカスタムカーネルを定義することです。説明のために、Ubuntuでは、これは/home/USERNAME/.local/share/jupyterフォルダーに次のデータ構造で格納されます。

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

カーネルをインストールしたら、次のことを行う必要があります。

1)anacondaによって環境がインストールされている場所を確認します。これを行う簡単な方法は、anacondaで環境をアクティブ化してから、ターミナルで「which python」と書くことです。バイナリへの完全なパスが表示されます。

2)作成したばかりのjupyterカーネルにそのパスを書き込みます。例えば。プラムを使う:

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

次に、インストールしたpythonバイナリのパスを/usr/bin/pythonがanacondaで置き換えます。

この後、Jupyterが実行されていた場合は再起動します。このようにして、次にJupyterを開いたときに、カーネル(ノートブックでは上部のタブの1つ)を変更することができ、ご使用の環境とその環境とともにインストールされたすべてを使用します。

[TL; DR]私はpipでそれを行いましたが、アナコンダの手順はほぼ同じです。手順は次のとおりです。

#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

[〜#〜]注意[〜#〜]:I DIDソリューションをテストするためにCONDAをインストールしない、= SO実際に至る経路PYTHONバイナリが変更される可能性があります。ただし、手順は同じです。

0