web-dev-qa-db-ja.com

Jupyter Notebookにコンダ環境が表示されない

私は(Python 2.7で)Anacondaをインストールし、そしてtensorflowと呼ばれる環境にTensorflowをインストールしました。その環境でTensorflowを正常にインポートできます。

問題は、Jupyter Notebookが作成したばかりの新しい環境を認識しないことです。 GUIナビゲータや within tensorflow envからJupyter Notebookを起動しても、メニューにはPython [Root]というカーネルが1つしかなく、Tensorflowをインポートすることはできません。もちろん、私はそのオプションを複数回クリックし、ファイルを保存し、再度開いたが、これらは役に立たなかった。

奇妙なことに、JupyterのフロントページにあるCondaタブを開くと、2つの環境が見えます。しかし、私がFilesタブを開いてノートブックをnewとしようとすると、まだ1つのカーネルしかありません。

私はこの質問を見ました: Jupyter NotebookとのConda環境のリンク しかし私のコンピュータには~/Library/Jupyter/kernelsのようなディレクトリはありません!このJupyterディレクトリにはruntimeという名前のサブディレクトリが1つだけあります。

私は本当に混乱しています。 Conda環境は自動的にカーネルになるはずですか? (私は https://ipython.readthedocs.io/en/stable/install/kernel_install.html に従って手動でカーネルを設定しましたが、ipykernelが見つからないと言われました。)

232
user31039

Condaが自動的に環境をjupyterカーネルに設定するのをやめたので、他の答えはもううまくいっていないと思います。次のようにして、各環境に手動でカーネルを追加する必要があります。

source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

ここに文書化されているように: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments _また見なさい この問題

補遺:すべての環境を自動的に追加するためにnb_conda_kernelsパッケージをconda install nb_conda_kernelsと共にインストールすることができるはずです。 https://github.com/Anaconda-Platform/nb_conda_kernels を参照してください

380
Andreas Mueller

厄介なことに、あなたのtensorflow環境では、その環境にjupyterをインストールすることなくjupyter notebook を実行することができます 。とにかく走れ

(tensorflow) $ conda install jupyter

そしてtensorflow環境は、Python [conda env:tensorflow]のようなものとしてあなたのconda環境のいずれかで始められたJupyter Notebooksに今見えるはずです。

93
Octavius

Anaconda3(またはMiniconda3)を使用する場合、conda環境にnb_condaおよび/またはnb_conda_kernelsをインストールする必要があるとのコメントもあります。

(my_env) $ conda install nb_conda nb_conda_kernels

もともとこれを投稿した時点では、 nb_condaはPython 3.6環境 をまだサポートしていなかったことに注意してください。パッケージの情報には、Python 3.6バージョンがあると書かれていますが、まだ動作しません。

他のソリューションでJupyterが他のconda環境を認識できない場合は、特定の環境内からいつでもjupyterをインストールして実行できます。ただし、Jupyter内から他の環境を見たり切り替えたりすることはできないかもしれません。そうは言っても、あなたがいくつかの異なる環境を使用する場合、Jupyterをすべての環境にインストールすることによって追加されたストレージスペースは(あなたのシステムによって)望ましくないかもしれません。

$ conda create -n py36_test -y python=3.6 jupyter
$ source activate py36_test
(py36_test) $ which jupyter
/home/schowell/anaconda3/envs/py36_test/bin/jupyter
(py36_test) $ jupyter notebook

このノートブックでPython 3.6.1を実行していることに注意してください。 enter image description here

65

これを機能させるには、上位3つの回答に記載されているすべてのコマンドを実行する必要がありました。

conda install jupyter
conda install nb_conda
conda install ipykernel
python -m ipykernel install --user --name mykernel
44
coolscitist

新しい環境でconda install ipykernelを実行するだけで、そのときだけこのenvでカーネルが得られます。各環境に異なるバージョンがインストールされていて、jupyterノートブックが再インストールされない場合でも、これは機能します。あなたは新しく追加されたカーネルを見ることができるでしょうどんな環境からでもあなたのノートブックを始めることができます。

41
rakesh

私達はこの問題と多くの闘いをしてきました、そして私達のために働くのはここにあります。 conda-forgeチャネル を使用する場合、Minicondaルート環境でも、conda-forgeからのアップデートパッケージを使用していることを確認することが重要です。

それで Miniconda をインストールして、それから:

conda config --add channels conda-forge --force
conda update --all  -y
conda install nb_conda_kernels -y
conda env create -f custom_env.yml -q --force
jupyter notebook

次の例のように、ipykernelcustom_env.ymlファイルにインストール用にリストされている限り、カスタム環境はJupyterに使用可能なカーネルとして表示されます。

name: bqplot
channels:
- conda-forge
- defaults
dependencies:
- python>=3.6
- bqplot
- ipykernel

たくさんのカスタム環境で動くことを証明するために、これがWindowsからのスクリーングラブです。

enter image description here

8
Rich Signell

私の新しいconda環境であるmyenvが、カーネルとしても新しいノートブックとしても選択できないという同じ問題に私は出会った。 env内からjupter notebookを実行しても同じ結果が得られました。

私の解決策、そしてJupyterのノートブックがconda-envとkernelをどのように認識するかについて私が学んだこと:

Condaを使ってjupyterとipythonをmyenvにインストールする:

conda install -n myenv ipython jupyter

その後、私の以前の環境と一緒にカーネルとしてmyenvにリストされている環境の外でjupter notebookを実行します。

Python [conda env:old]
Python [conda env:myenv]

環境を有効にしたらノートブックを実行します。

source activate myenv
jupyter notebook

私の他のすべての環境カーネルを隠し、私の言語のカーネルだけを表示します。

python 2
python 3
R
7
Shri Samson

要約(tldr)

'python3'カーネルが常にそれが起動された環境からPythonのインストールを実行するようにしたい場合は、現在の環境が何よりも優先されているUser 'python3'カーネルを削除してください。

jupyter kernelspec remove python3

フルソリューション

私は、次のような場合に対して、より簡単で代替的な解決策を投稿します。

  • あなたはconda環境を作成しました
  • この環境にはjupyterがインストールされています(これによりipykernelもインストールされます)。
  • jupyter notebookコマンドを実行し、[New]ドロップダウンメニューの[python3]をクリックして新しいノートブックを作成すると、そのノートブックは現在の環境ではなく基本環境からpythonを実行します。
  • どの環境でも 'python3'を使って新しいノートブックを起動すると、その環境からのPythonバージョンが実行され、ベースからは実行されないようにしてください。

ソリューションの残りの部分では、環境に 'test_env'という名前を使用します。また、 'python3'はカーネルの名前です。

現在のトップ投票の答えはうまくいきますが、別の方法があります。それは次のことをするように言う。

python -m ipykernel install --user --name test_env --display-name "Python (test_env)"

どの環境からjupyter notebookを起動しても、test_env環境を使用することができます。しかし、 'python3'を使用してノートブックを起動すると、基本環境からのPythonインストールが引き続き使用されます。

おそらく起こっているのは、存在するユーザーpython3カーネルがあるということです。すべての環境をリストするには、コマンドjupyter kernelspec listを実行します。例えば、あなたがMacを持っているなら、あなたは次のように返されるでしょう(私のユーザー名はTedです)。

python3       /Users/Ted/Library/Jupyter/kernels/python3

ここでJupyterがしていることは、カーネルを探すために3つの異なるパスを検索することです。 User から Env System になります。各オペレーティングシステムを検索するパスの詳細については、 このドキュメント を参照してください。

上記の2つのカーネルは両方ともUserパスにあります。つまり、jupyterノートブックを起動した環境に関係なく使用できるようになります。これはまた、環境レベルで別の 'python3'カーネルがあると、決してアクセスできなくなることを意味します。

私には、ノートブックを起動した環境から 'python3'カーネルを選択すると、その環境からPythonが実行されるはずです。

あなたのOS用のEnv検索パスを調べることで、あなたが別の 'python3'環境を持っているかどうかを確認することができます(上記のドキュメントへのリンクを見てください)。私の場合(Macの場合)、次のコマンドを発行しました。

 ls /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels

そして私は確かにそこに 'python3'カーネルをリストしていました。

このGitHubの問題のコメント (最初の回答を見てください)のおかげで、次のコマンドでUser 'python3'環境を削除することができます。

jupyter kernelspec remove python3

Test_envがまだアクティブであると仮定してjupyter kernelspec listを実行すると、次のようになります。

python3       /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels/python3

このパスはtest_envディレクトリ内にあることに注意してください。新しい環境を作成し、jupyterをインストールし、それをアクティブにし、そしてカーネルをリストアップするなら、あなたはその環境パスにある別の 'python3'カーネルを得るでしょう。

ユーザ 'python3'カーネルはどの環境の 'python3'カーネルよりも優先されていました。それを削除することで、アクティブ環境の 'python3'カーネルが公開され、毎回選択できるようになりました。これにより、手動でカーネルを作成する必要がなくなります。また、ソフトウェア開発の観点からは、自分自身を単一の環境に分離したい場合があります。ホスト環境とは異なるカーネルを実行するのは当然のことではありません。

また、このユーザ 'python3'はデフォルトでは全員にインストールされていないため、全員がこの問題に直面しているわけではありません。

7
Ted Petrou
    $ conda install nb_conda_kernels

(あなたがjupyterノートブックを実行するconda環境で)すべてのconda環境を自動的に利用可能にするでしょう。他の環境にアクセスするには、それぞれのカーネルをインストールする必要があります。これが ref です。

6
ohailolcat

@ coolscitistの答え は私のために働きましたが、完全なjupyterパッケージ+ depsであなたのカーネル環境を乱雑にしない方法もあります。これは ipython docs に記述されていて、あなたがノートブックサーバを非ベース環境で動かしている場合にのみ必要です。

conda activate name_of_your_kernel_env
conda install ipykernel
python -m ipykernel install --prefix=/home/your_username/.conda/envs/name_of_your_jupyter_server_env --name 'name_of_your_kernel_env'

あなたはそれが使用して動作するかどうかを確認することができます

conda activate name_of_your_jupyter_server_env 
jupyter kernelspec list
4
jan-glx

これは非常にイライラするものでした。私の問題は、新しく構築されたconda python36環境内で、jupyterが「seaborn」をロードすることを拒否したことです - seabornがその環境内にインストールされていてもそれは同じ環境からたくさんの他のファイルをインポートすることができるように思われました - 例えば、でこぼことパンダがしかしちょうど海兵隊員ではありません。私はここでそして他のスレッドで提案された修正の多くを成功せずに試した。私はJupyterがその環境の中からカーネルpythonを走らせているのではなく、システムpythonをカーネルとして走らせていることに気づくまでは。まともなカーネルとkernel.jsonがすでに環境に存在していたとしても。それはipythonのドキュメントのこの部分を読んだ後にだけでした: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments そしてこれらのコマンドを使用して:

source activate other-env
python -m ipykernel install --user --name other-env --display-name "Python (other-env)"

私はすべてがうまくいくようにすることができました。 (私は実際には--user変数を使用しませんでした)。

まだ考えていないことの1つは、デフォルトのPythonを「Python(other-env)」に設定する方法です。現在ホーム画面から開いている既存の.ipynbファイルはシステムpythonを使用します。環境pythonを選択するには、Kernelメニューの「Change kernel」を使用する必要があります。

3
George J Wright

私はすべてのconda環境にnb_condaをインストールしましたが、それでもjupyterノートブックで選択可能なカーネルとして表示されませんでした。私はconda baseからjupyter notebookを実行していました。

これを直すには、nb_condanb_conda_kernelsをベースにインストールしなければなりませんでした。 そして最後に私の環境はすべてカーネルとして表示されます。

これが誰かに役立つことを願っています。

1
kett

これはWindows 10と最新のソリューションでうまくいきました:

1)そのconda環境の内部に入ります(your_env_nameをアクティブにします)

2)conda install -n your_env_name ipykernel

3)python -m ipykernel install --user --name build_central --display-name "your_env_name"

(注:ステップ3で、「your_env_name」を引用符で囲みます)

1
bad programmer

nb_conda_kernelsパッケージは、jupytercondaを併用するための最良の方法です。最小限の依存関係と設定で、それはあなたが異なる環境で動くjupyterノートブックから他のconda環境を使うことを可能にします。 ドキュメンテーション :の引用

インストール

このパッケージはcondaを使用してのみ管理されるように設計されています。 Jupyter NotebookまたはJupyterLabを実行している環境にインストールする必要があります。これはあなたのbase conda環境かもしれませんが、そうである必要はありません。たとえば、環境notebook_envにノートブックパッケージが含まれている場合は、次のように実行します。

conda install -n notebook_env nb_conda_kernels

ノートブックでアクセスしたいその他の環境には、適切なカーネルパッケージがインストールされている必要があります。たとえば、Python環境にアクセスするには、ipykernelパッケージが必要です。例えば.

conda install -n python_env ipykernel

R環境を利用するには、r-irkernelパッケージが必要です。例えば.

conda install -n r_env r-irkernel

他の言語では、それらの 対応するカーネル をインストールする必要があります。

それから、jupyterノートブックサーバーを起動するだけです。

conda activate notebook_env  # only needed if you are not using the base environment for the server
# conda install jupyter # in case you have not installed it already
jupyter

enter image description here 


たくさんの答えとそれらを改善するための@ mervの努力にもかかわらず、それでも良いものを見つけるのは難しいです。私はこれをCWにしたので、トップに投票するか、それを改善してください。

1
jan-glx

Jupyter Notebookで選択するカーネルのリストに異なるconda環境を追加するには、 iPythonのドキュメントの手順 に従ってください。要約すると、ipykernelをインストールした後、ターミナルで各conda環境を1つずつアクティブにして、コマンドpython -m ipykernel install --user --name myenv --display-name "Python (myenv)"を実行する必要があります。ここで、myenvは追加する環境(カーネル)です。

0