Jupyter NotebookにConda環境が表示されない


364

Anaconda(Python 2.7)をインストールし、Tensorflowをという環境にインストールしましたtensorflow。その環境でTensorflowを正常にインポートできます。

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

奇妙なことに、CondaJupyterのフロントページのタブを開くと、2つの環境が表示されます。しかし、Filesタブを開いてnewノートブックにアクセスしようとすると、まだカーネルが1つしかありません。

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

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


43
conda install ipykernelその環境で実行します。
トーマスK

1
conda install ipykerneljupyter環境にインストールしているようです...何か不足していますか?
Dror、2018

1
おそらくipykernelには依存関係としてjupyterがありますか?
kevinkayaks 2018

1
もはや機能していないようです... Andreasからの以下の回答を参照してください
Casey L

@ThomasKこれは、nb_condaが使用されている場合、または質問で提案されているようにカーネルが手動で設定されている場合にのみ機能します。そうでなければ、それは実際に多くのものを台無しにするでしょう。実行可能ファイルjupyterは環境内の実行可能ファイルを指しますが、システムjupyter-notebookが起動され(インストールされている場合)、したがって、デフォルトのカーネルで環境を使用しません。
lumbric

回答:


542

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を参照してください


28
どういうわけかフラグは今日の時点で最新のソリューションです。
N. CHATURV3DI 2017

1
これだけが私にとってうまくいきました!conda install nb_conda-助けにはならなかった。ありがとう!
2018年

2
インストールは、nb_conda_kernels(2018年4月の時点で私のために働きましたPython 3.6.4conda 4.3.27jupyter 4.4.0)。
wflynny

3
私の以前のコメントの修正:新しいenvは初めて表示されません。envを非アクティブ化して再度アクティブ化してから、jupyterを開くと、正しく表示されます。
R71

23
これでうまくいかない場合conda install ipykernelは、この回答を実行してみてください。この回答は、すでに環境にインストールされていると想定しています。
ケンマイヤーズ

150

環境が表示されない場合nb_conda_kernelsは、Jupyterがインストールされている環境にインストールされていない可能性があります。 Anacondaのドキュメントには、

nb_conda_kernelsJupyter NotebookまたはJupyterLabを実行する環境にインストールする必要があります。これは基本的な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

他の言語の場合、対応するカーネルをインストールする必要があります。

これを最初に投稿した時点では、nb_condaPython 3.6環境がまだサポートされていないことが原因である可能性があることに注意してください。

他のソリューションでJupyterが他のconda環境を認識できない場合、いつでも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を実行していることに注意してください。 ここに画像の説明を入力してください

多くの環境でこれを行う場合、Jupyterをすべての環境にインストールすることによる追加のストレージスペースは望ましくない場合があります(システムによっては)。


こんにちは、このスレッドをもう一度開いてごめんなさい。しかし、私はここでアドバイスされているようにすべてを試しましたが、それでもjupyterにtensorflow envが表示されません。私はテンソルフロー環境にjupyterをインストールしています。そこにpython 3.6.1がインストールされています。conda nb_condaをインストールしようとしましたが、py3.6との競合が表示されます。だから、インストールされなかったので、私が試した他のすべては残り、動作していないようです。何かアドバイス?
バクタワール2017

OK。もう一度確認しました。私の問題は、Python 3カーネルで開いたjupyterがモジュールをインポートできないことです。なぜだかわかりません。また、他の
環境

2
@Baktaawar、ノートブックでpython 3.6を使用する方法を示す私の最新の回答を参照してください。Python 3.6環境を実行できます。その環境をアクティブにしてjupyterを起動するだけです。Conda環境は、自己完結型のpythonインストールと考えることができます。Jupyterをシステムのpythonにインストールすると、同様に1つのpythonカーネルオプションのみが表示されます。 nb_condaの目的は、「Jupyter内からConda環境とパッケージアクセス拡張機能を提供する」ことだけなので、選択したPythonインストールからJupyterを実行できます。
Steven C. Howell

1
@ StevenC.Howell私の懸念に対処してくれてありがとう。ipykernelカーネルとして使用する各環境にインストールする必要があることは、まだ言及する必要があると思います。
merv

1
うーん、なぜそれなしでそれが機能するのかわかりません。あなたが正しい、彼らはそれがインストールされるべきであると明確に述べています。私はそれを私の答えに追加しました。ありがとう!
スティーブンCハウエル

112

面倒なのは、ご使用のtensorflow環境では、その環境にjupyter notebook インストールjupyterしなくても実行できることです。ただ走れ

(tensorflow) $ conda install jupyter

そしてtensorflow環境は今、あなたのいずれかで開始しJupyterノートブックに表示されなければならないcondaようなものとして環境Python [conda env:tensorflow]


6
私はトーマスKと同じ問題を抱えていましたが、Octaviusによって共有された解決策も私の問題を解決しました。ただし、1つの問題点があります。AnacondaのPython 3バージョンを使用している場合は、現在のアクティブな環境のみを表示でき、独自のJupyterがあるはずです。ただし、AnacondaのPython 2バージョンをインストールすると、すべての環境を処理できます。
rkmalaiya 2017

6
「conda install nb_conda」を実行して、Python2バージョンのanacondaでもJupyter自体から環境を管理できます。
rkmalaiya 2017

7
@rkmalaiyaは正しいです。Miniconda3またはAnaconda3を実行conda install nb_condaしている場合は、ソースのconda環境(jupyterノートブックがインストールされている)のいずれかで実行します。その後、jupyter Notebookブラウザーでkernels / conda envsを切り替えることができます。
Harsha Manjunath

1
このメソッドはAnaconda 5.2 Python 3.6で2018年9月に機能することを報告できます
jdr5ca

13
これはユーザーにすべての環境にJupyterをインストールするように促すので、これはひどい答えです。これは完全に不要です。これが機能する理由は、ipykernel(これが実際に必要な唯一のことです)、の依存関係であるためjupyterです。
merv

72

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

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

9
これは私にとってもうまくいきましたが、私には必要ありませんでしたconda install nb_conda
ケンマイヤーズ

3
素晴らしい蒸留!
Bao-Tin Hoang 2018

1
jupyter lab特定の環境内で実行するときにオプションとして環境カーネルを表示するには、最初の3つのコマンドが必要でした
Igor Fobia '18

3
私も働いた。私の神、これは理解するのにイライラさせられました。
Trevor Bye

4
nb_condaは必要ありません!;)
Prayson W. Daniel

48

conda install ipykernel新しい環境で実行するだけで、この環境でカーネルが取得されます。これは、各環境に異なるバージョンがインストールされていて、jupyter Notebookを再度インストールしなくても機能します。新しく追加されたカーネルを見ることができる任意の環境からノートブックを起動できます。


10
これが2018年1月の時点での最良の答えです。単にconda install ipykernelconda環境内にいる場合、Jupyter は起動時にカーネルを自動検出するはずです。最悪の場合、python -m ipykernel install --user --name mykernel手動でカーネルを生成するために使用できますが、すでに自動検出されている場合、またはカーネルリストに2回表示される場合は、これを実行する必要はありません。
colllin

2
これにより、Jupiterとその依存関係もすべてインストールされます。動作しますが、どういうわけか最適ではありません
Quickbeam2k1

16

要約(tldr)

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

jupyter kernelspec remove python3

完全なソリューション

私は次の場合のための代替的で簡単な解決策を投稿します:

  • コンダ環境を作成しました
  • この環境にはjupyterがインストールされています(これによりipykernelもインストールされます)
  • コマンドを実行すると jupyter notebook [新規]ドロップダウンメニューで[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つの異なるパスを検索することです。それから行くユーザーに、Envのに、システムこのドキュメントを参照してくださいには、各オペレーティングシステムを検索パスの詳細については、を。

上記の2つのカーネルはどちらもユーザーパスにあります。つまり、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

jupyter kernelspec listtest_envがまだアクティブであると想定してを実行すると、次の結果が得られます。

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

このパスはtest_envディレクトリ内にあることに注意してください。新しい環境を作成し、jupyterをインストールしてアクティブ化し、カーネルを一覧表示すると、環境パスに別の「python3」カーネルが配置されます。

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

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


python -m ipykernel install --user --name test_env --display-name "Python(test_env)"は魅力のように機能します。ありがとう
slobodan.blazeski

12
    $ conda install nb_conda_kernels

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


これは単にstackoverflow.com/a/48349338/570918を要約していませんか?
メルヴ

これは最も簡単な方法のように見えます。
Decula

9

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

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

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

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

一連のカスタム環境で機能することを証明するために、Windowsからの画面グラブを以下に示します。

ここに画像の説明を入力してください


8

nb_conda_kernelsパッケージには、使用するための最良の方法であるjupyterconda。最小限の依存関係と構成で、別の環境で実行されているjupyterノートブックから他のconda環境を使用できます。そのドキュメントを引用:

取り付け

このパッケージは、condaのみを使用して管理するように設計されています。Jupyter NotebookまたはJupyterLabを実行する環境にインストールする必要があります。これはbaseconda環境かもしれませんが、そうである必要はありません。たとえば、環境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 Notebookサーバーを起動するだけです。

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

ここに画像の説明を入力してください


多数の回答とそれらを改善するための@mervの努力にもかかわらず、良いものを見つけることはまだ困難です。これをCWにしましたので、上に投票するか改善してください!



7

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

私のソリューションと、Jupyterノートブックがconda-envとカーネルを認識する方法について私が学んだこと:

jupyterとipythonをcondaにインストールするmyenv

conda install -n myenv ipython jupyter

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

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

環境をアクティブ化したら、ノートブックを実行します。

source activate myenv
jupyter notebook

他のすべての環境カーネルを非表示にし、私の言語カーネルのみを表示します。

python 2
python 3
R

6

これは私にとって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」を引用符で囲んでください)


4

これは非常に苛立たしいものでした。私の問題は、新しく作成されたconda python36環境内で、jupyterが「seaborn」のロードを拒否したことです。同じ環境から他の多くのファイルをインポートできるようです。たとえば、numpyやpandasなどですが、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を選択する必要があります。


4

一方で@ coolscitistの答えは私のために働いた、+ DEPS完全jupyterパッケージとカーネル環境を乱雑にしない方法もあります。これはipythonのドキュメントに記載されており、(おそらく)ノートブックサーバーを非ベース環境で実行する場合にのみ必要です。

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

1
実際には、jupyterを更新して使用conda install nb_conda_kernelsする方がうまくいきます。
jan-glx

これpython -m ipykernel installは環境を登録する従来の方法であり、他の(Conda以外の)環境でも機能することに注意してください。の背後にnb_conda_kernelsある考え方は、をインストールしている限り、これを手動で行う必要がないということですipykernel
merv

はい!このコメントをこのスタンドアロンの回答に変えました。
jan-glx

2

同様の問題があり、Mac、Windows、Linuxで機能する解決策を見つけました。上記の答えにあるいくつかの主要な成分が必要です:

Jupyterノートブックでconda envを表示するには、次のものが必要です。

  • 次のパッケージが基本環境です:
    conda install nb_conda

  • 作成する各環境の次のパッケージ:
    conda install ipykernel

  • jupyter_notebook_config.py
    最初の設定の確認nが 存在しない場合にjupyter_notebook_config.py指定された場所に あるかどうかを確認し、add jupyter --paths
    を実行して作成 jupyter notebook --generate-config
    するか、次のことを確認してください。c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'

あなたのターミナルで見ることができる環境: ここに画像の説明を入力してください

Jupyterラボでは、ノートブックとコンソールの両方で上記と同じ環境を確認できます。 ここに画像の説明を入力してください

また、ノートブックを開いているときに環境を選択できます。 ここに画像の説明を入力してください

安全な方法は、envjupyter labコマンドの例を実行する特定のenvを作成することです。環境をアクティブにします。次に、jupyter lab拡張の例jupyter lab拡張を追加します。その後、実行できます jupyter lab


1

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


1

チャネル固有の問題の可能性

この問題が(再度)ありましたが、conda-forgeチャネルからインストールしたことがわかりました。削除してアナコンダチャネルから再インストールすると、代わりに修正されました。

更新:新しい環境でも同じ問題が発生しました。今回nb_conda_kernelsanacondaチャネルからインストールしましたjupyter_clientが、conda-forgeチャネルからインストールしました。アンインストールnb_conda_kernelsして再インストールすると、優先度の高いチャネルに更新されます。

したがって、正しいチャネルからインストールしたことを確認してください:)


いくつかのことが混同されているように聞こえるかもしれません。jupyterそしてnb_conda_kernels、1つの環境にインストールする必要があります-これは常に実行する場所ですjupyter notebook。新しいenvは必要なだけですがipykernel、実行時にアクティブにしないでくださいjupyter notebook
merv

1
私は知っています、それは新しいマシン上にありました。
xyzzyqed

1
はい。私は私の票を変更することができ、主にので、あなたの答えを編集した、だけでなく、あなたが呼んでいたものを明確にするためにcondaのチャネル(ないもの-のいずれかのデフォルトアナコンダを)。何が起こったのかを誤って説明している場合は、自由に編集してください。
merv

-1

私の場合、Windows 10とconda 4.6.11を使用して、コマンドを実行します

conda install nb_conda

conda install -c conda-forge nb_conda_kernels

を使用して同じコマンドラインからJupyterを開いた後、環境をアクティブにしているときにターミナルからジョブを実行できませんでしたconda jupyter notebook

解決策は明らかに、環境の私の環境に移動して、アナコンダナビゲーターからJupyterを開くことでした:アナコンダナビゲーターを開き、環境で環境を選択し、選択した環境の[再生]ボタンを押して、[Jupyterノートブックで開く]を選択します。

選択した環境からJupyterを実行するためのAnaconda Navigatorの環境


1
見ていドキュメンテーション Condaカーネルを使用する方法についてを。Jupyterがある環境からJupyterを起動します。ipykernelJupyterでカーネルとして使用するすべての環境にインストールします。
merv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.