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
が見つからないと言われました。)
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 を参照してください
厄介なことに、あなたのtensorflow
環境では、その環境にjupyter
をインストールすることなくjupyter notebook
を実行することができます 。とにかく走れ
(tensorflow) $ conda install jupyter
そしてtensorflow
環境は、Python [conda env:tensorflow]
のようなものとしてあなたのconda
環境のいずれかで始められたJupyter Notebooksに今見えるはずです。
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
これを機能させるには、上位3つの回答に記載されているすべてのコマンドを実行する必要がありました。
conda install jupyter
conda install nb_conda
conda install ipykernel
python -m ipykernel install --user --name mykernel
新しい環境でconda install ipykernel
を実行するだけで、そのときだけこのenvでカーネルが得られます。各環境に異なるバージョンがインストールされていて、jupyterノートブックが再インストールされない場合でも、これは機能します。あなたは新しく追加されたカーネルを見ることができるでしょうどんな環境からでもあなたのノートブックを始めることができます。
私達はこの問題と多くの闘いをしてきました、そして私達のために働くのはここにあります。 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
次の例のように、ipykernel
がcustom_env.yml
ファイルにインストール用にリストされている限り、カスタム環境はJupyterに使用可能なカーネルとして表示されます。
name: bqplot
channels:
- conda-forge
- defaults
dependencies:
- python>=3.6
- bqplot
- ipykernel
たくさんのカスタム環境で動くことを証明するために、これがWindowsからのスクリーングラブです。
私の新しい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
要約(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'はデフォルトでは全員にインストールされていないため、全員がこの問題に直面しているわけではありません。
$ conda install nb_conda_kernels
(あなたがjupyterノートブックを実行するconda環境で)すべてのconda環境を自動的に利用可能にするでしょう。他の環境にアクセスするには、それぞれのカーネルをインストールする必要があります。これが ref です。
@ 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
これは非常にイライラするものでした。私の問題は、新しく構築された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」を使用する必要があります。
私はすべてのconda環境にnb_conda
をインストールしましたが、それでもjupyterノートブックで選択可能なカーネルとして表示されませんでした。私はconda baseからjupyter notebook
を実行していました。
これを直すには、nb_conda
とnb_conda_kernels
をベースにインストールしなければなりませんでした。 そして最後に私の環境はすべてカーネルとして表示されます。
これが誰かに役立つことを願っています。
これは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」を引用符で囲みます)
nb_conda_kernels
パッケージは、jupyter
とconda
を併用するための最良の方法です。最小限の依存関係と設定で、それはあなたが異なる環境で動く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
たくさんの答えとそれらを改善するための@ mervの努力にもかかわらず、それでも良いものを見つけるのは難しいです。私はこれをCWにしたので、トップに投票するか、それを改善してください。
Jupyter Notebookで選択するカーネルのリストに異なるconda環境を追加するには、 iPythonのドキュメントの手順 に従ってください。要約すると、ipykernel
をインストールした後、ターミナルで各conda環境を1つずつアクティブにして、コマンドpython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
を実行する必要があります。ここで、myenv
は追加する環境(カーネル)です。