2016-09-20 201 views
69

我安裝了Anaconda(與Python 2.7),並在名爲tensorflow的環境中安裝了Tensorflow。我可以在該環境下成功導入Tensorflow。Conda環境沒有出現在Jupyter Notebook中

問題是Jupyter筆記本無法識別我剛創建的新環境。無論是從GUI導航器還是命令行 env中啓動Jupyter Notebook,菜單中只有一個名爲Python [Root]的內核,並且無法導入Tensorflow。當然,我多次點擊該選項,保存文件,重新打開,但這些都沒有幫助。

奇怪的是,當我打開Jupyter首頁的Conda標籤時,我可以看到兩種環境。但是當我打開Files選項卡並嘗試使用筆記本電腦時,我仍然只有一個內核。

我看着這個問題: Link Conda environment with Jupyter Notebook 但是在我的電腦上沒有這樣一個目錄作爲~/Library/Jupyter/kernels!該Jupyter目錄只有一個名爲runtime的子目錄。

我真的很困惑。 Conda環境是否應該自動成爲內核? (我跟着https://ipython.readthedocs.io/en/stable/install/kernel_install.html手動設置的內核,但被告知,ipykernel沒有被發現。)

+5

運行'暢達安裝ipykernel'在那樣的環境。 –

回答

55

的討厭的事情是,在你的tensorflow環境,您可以運行jupyter notebook沒有在這種環境安裝jupyter。只要運行

(tensorflow) $ conda install jupyter 

tensorflow環境現在應該是可見的Jupyter筆記本電腦在任何你conda環境,因爲像Python [conda env:tensorflow]的開始。

+6

我和Thomas K有同樣的問題,Octavius共享的解決方案也解決了我的問題。但是,有一個問題,如果你有Python 3版本的Anaconda,那麼你將只能看到你當前的活動環境,它應該有它自己的Jupyter。但是如果你安裝了Anaconda的Python 2版本,它可以處理所有的環境。 – rkmalaiya

+5

你也可以在Python2版本的anaconda中執行「conda install nb_conda」來從Jupyter本身管理你的envs。 – rkmalaiya

+6

@rkmalaiya是正確的。如果您正在運行Miniconda3或Anaconda3,請在您的conda環境(安裝了jupyter筆記本電腦)之一中執行'''conda install nb_conda'''。然後,您可以在jupyter筆記本瀏覽器中切換內核/ conda envs。 –

20

@ HarshaManjunath的評論中提到,使用Anaconda3(或Miniconda3)當您需要安裝nb_conda到暢達環境(除jupyter):

(py35) $ conda install nb_conda 

注意,這does not currently work with python 3.6 environments。該軟件包的信息確實說有一個python 3.6版本,它只是不工作。

$ conda info nb_conda 
... 
nb_conda 2.0.0 py36_0 
--------------------- 
file name : nb_conda-2.0.0-py36_0.tar.bz2 
name  : nb_conda 
version  : 2.0.0 
build string: py36_0 
build number: 0 
channel  : defaults 
size  : 30 KB 
arch  : x86_64 
date  : 2016-12-20 
license  : BSD 
md5   : 24d433439f2fdd1d27e49c27688c2589 
noarch  : None 
platform : linux 
url   : https://repo.continuum.io/pkgs/free/linux-64/nb_conda-2.0.0-py36_0.tar.bz2 
dependencies: 
    _nb_ext_conf 
    nb_conda_kernels 
    notebook >=4.2 
    python 3.6* 

要在Jupyter筆記本使用Python 3.6,你可以從Python 3.6環境中運行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

+0

嗨很抱歉再次打開此線程。不過,我嘗試了一切建議這裏,仍然沒有看到jupyter tensorflow env。我在tensorflow env中安裝了jupyter。我在那裏安裝了python 3.6.1。我嘗試安裝conda nb_conda,但它說與py3.6衝突。所以,沒有得到安裝休息一切,我試過了,似乎並沒有工作。有什麼建議? – Baktaawar

+0

好的。我再次檢查。我的問題是,我的jupyter打開Python 3內核時無法導入任何模塊。我不確定這是爲什麼。而且它也不會顯示其他env – Baktaawar

+0

@Baktaawar我注意到同樣的錯誤。我想充實這個答案,但遇到了這個問題,沒有時間解決它。我認爲這是一個應該作爲git問題報告的錯誤。 –

17

在新的環境下,只要運行conda install ipykernel,只有這樣,你會得到這個ENV的內核。即使您在每個envs中安裝了不同的版本,並且它不會再安裝jupyter筆記本,這也可以工作。你可以從任何環境啓動你的筆記本,你將能夠看到新添加的內核。

+3

這是截至2018年1月的最佳答案。如果您只是在conda環境中將'conda install ipykernel'安裝在內,Jupyter就應該在啓動時自動發現您的內核。最糟糕的情況是,你可以使用'python -m ipykernel install --user --name mykernel'來手動生成內核,但是如果它已經被自動發現,你不會想要這樣做,否則它會顯示兩次內核列表。 – colllin

+0

這也將安裝Jupiter和它的所有依賴項。它的作品,但不知何故它不是最佳 – Quickbeam2k1

+0

這個答案應該標記爲正確的答案。 <爲未來的人們提供參考> – imsrgadich

4

我遇到了同樣的問題,我的新conda環境myenv無法被選爲內核或新筆記本。從env內​​部運行jupter notebook得出了相同的結果。

我的解決方案,以及我瞭解Jupyter筆記本電腦如何識別暢達,ENVS和內核:

安裝jupyter器和IPython都以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 
62

我不認爲其他答案正在工作,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 另見this issue

+6

從某種程度上來說,國旗是否可以作爲今天的最新解決方案? –

+1

這工作對我2017年12月 –

+1

只有這對我有效! conda安裝nb_conda - 沒有幫助。謝謝! – Deil

3

我們奮鬥了很多這個問題,並在這裏對我們的作品。如果使用conda-forge channel,一定要確保你正在使用從conda-forge更新包,甚至在你Miniconda根環境是很重要的。

所以安裝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 

和定製環境將在Jupyter顯示爲一個可用的內核,只要ipykernel被列爲安裝在您的custom_env.yml文件,這樣的例子:

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

只是爲了證明它與一堆定製的環境下工作,這裏有來自Windows的屏幕抓取:

enter image description here