Zainstalowałem Anacondę (z Python 2.7) i zainstalowałem Tensorflow w środowisku o nazwie tensorflow
. Mogę z powodzeniem zaimportować Tensorflow w tym środowisku.
Problem polega na tym, że Jupyter Notebook nie rozpoznaje nowego środowiska, które właśnie utworzyłem. Bez względu na to, czy uruchamiam Jupyter Notebook z GUI Navigator lub z linii poleceń w środowisku tensorflow
env, w menu jest tylko jedno jądro o nazwie Python [Root]
, a Tensorflow nie może zostać zaimportowany. Oczywiście kliknąłem tę opcję wiele razy, zapisałem plik, otworzyłem ponownie, ale te nie pomogły.
O dziwo, widzę dwa środowiska, kiedy otwieram Conda
zakładkę na pierwszej stronie Jupytera. Ale kiedy otwieram Files
kartę i próbuję new
zeszytu, wciąż mam tylko jedno jądro.
Spojrzałem na to pytanie:
Połącz środowisko Conda z Jupyter Notebook
Ale nie ma takiego katalogu jak ~/Library/Jupyter/kernels
na moim komputerze! Ten katalog Jupyter ma tylko jeden podkatalog o nazwie runtime
.
Jestem naprawdę zdezorientowany. Czy środowiska Conda powinny automatycznie stać się jądrem? (Postępowałem zgodnie z https://ipython.readthedocs.io/en/stable/install/kernel_install.html, aby ręcznie skonfigurować jądra, ale powiedziano mi, że ipykernel
nie znaleziono.)
źródło
conda install ipykernel
w tym środowisku.conda install ipykernel
wydaje się instalowaćjupyter
w środowisku ... Czy coś mi brakuje?nb_conda
jest używane lub jeśli jądro jest konfigurowane ręcznie, jak sugerowano w pytaniu. W przeciwnym razie będzie to naprawdę bardzo bałagan. Plik wykonywalnyjupyter
wskaże plik wykonywalny w środowisku, ale systemjupyter-notebook
zostanie uruchomiony (jeśli jest zainstalowany) i dlatego nie będzie używać środowiska z domyślnym jądrem.Odpowiedzi:
Nie sądzę, aby inne odpowiedzi już działały, ponieważ conda przestała automatycznie konfigurować środowiska jako jądra jupyter. Musisz ręcznie dodać jądra dla każdego środowiska w następujący sposób:
Jak udokumentowano tutaj: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments Zobacz także ten problem .
Dodatek: Powinieneś być w stanie zainstalować
nb_conda_kernels
pakiet,conda install nb_conda_kernels
aby automatycznie dodawać wszystkie środowiska, patrz https://github.com/Anaconda-Platform/nb_conda_kernelsźródło
nb_conda_kernels
pracował dla mnie od kwietnia 2018 (Python 3.6.4
,conda 4.3.27
,jupyter 4.4.0
).conda install ipykernel
tę odpowiedź, zakładając, że masz już zainstalowany w swoim środowisku.Jeśli twoje środowiska się nie wyświetlają, prawdopodobnie nie masz
nb_conda_kernels
zainstalowanego w środowisku, w którym jest zainstalowany Jupyter. Dokumentacja Anakondy stwierdza, żeZwróć uwagę, że w momencie pierwotnego publikowania tej wiadomości mogła istnieć przyczyna
nb_conda
braku obsługi środowisk Python 3.6 .Jeśli inne rozwiązania nie pozwolą Jupyterowi rozpoznać innych środowisk conda, zawsze możesz zainstalować i uruchomić
jupyter
z określonego środowiska. Jednak możesz nie być w stanie zobaczyć lub przełączyć się na inne środowiska z poziomu Jupyter.Zauważ, że korzystam z Pythona 3.6.1 w tym notesie:
Pamiętaj, że jeśli zrobisz to w wielu środowiskach, dodatkowe miejsce do przechowywania po zainstalowaniu Jupytera w każdym środowisku może być niepożądane (w zależności od systemu).
źródło
nb_conda
jego celem jest tylko „[zapewnienie] środowiska Conda i rozszerzenia dostępu do pakietu z poziomu Jupyter”, aby nie było to możliwe, aby można było uruchomić Jupyter z wybranej instalacji Pythona.ipykernel
należy zainstalować w każdym środowisku, którego chcesz używać jako jądra.Irytujące jest to, że w twoim
tensorflow
środowisku możesz działaćjupyter notebook
bez instalowaniajupyter
w tym środowisku . Po prostu biegnija
tensorflow
środowisko powinno być teraz widoczne w Notatnikach Jupyter uruchomionych w dowolnymconda
środowisku jako coś w rodzajuPython [conda env:tensorflow]
.źródło
conda install nb_conda
w jednym ze źródeł Conda (z zainstalowanym notebookiem jupyter). Następnie możesz przełączyć jądra / envs conda w przeglądarce notatnika jupyter.ipykernel
(co jest jedyną faktycznie potrzebną rzeczą), zależnośćjupyter
.Musiałem uruchomić wszystkie polecenia wymienione w 3 najlepszych odpowiedziach, aby to zadziałało:
źródło
conda install nb_conda
jupyter lab
w tym konkretnym środowiskuPo prostu uruchom
conda install ipykernel
w nowym środowisku, tylko wtedy dostaniesz jądro z tym środowiskiem. Działa to nawet wtedy, gdy masz różne wersje zainstalowane w każdym środowisku i nie instaluje ponownie notesu jupyter. Możesz uruchomić swój notatnik z dowolnego środowiska, w którym będzie można zobaczyć nowo dodane jądra.źródło
conda install ipykernel
znajdujesz się w środowisku Conda. W najgorszym przypadku możesz użyćpython -m ipykernel install --user --name mykernel
do ręcznego wygenerowania jądra, ale nie chciałbyś tego robić, jeśli jest już automatycznie wykrywany lub pojawi się dwukrotnie na liście jądra.Podsumowanie (tldr)
Jeśli chcesz, aby jądro „python3” zawsze uruchamiało instalację Pythona ze środowiska, w którym zostało uruchomione, usuń jądro użytkownika „python3”, które ma pierwszeństwo przed tym, co ma obecne środowisko:
Pełne rozwiązanie
Zamierzam opublikować alternatywne i prostsze rozwiązanie dla następującego przypadku:
jupyter notebook
i utworzeniu nowego notesu poprzez kliknięcie „python3” w menu rozwijanym „Nowy” ten notebook wykonuje python ze środowiska podstawowego, a nie z bieżącego.Mam zamiar używać nazwy „test_env” dla środowiska do końca rozwiązania. Zauważ też, że „python3” to nazwa jądra.
Obecnie najczęściej głosowana odpowiedź działa, ale istnieje alternatywa. Mówi, aby wykonać następujące czynności:
To da ci możliwość korzystania ze środowiska test_env bez względu na to, z jakiego środowiska uruchomisz
jupyter notebook
. Jednak uruchomienie notebooka z „python3” nadal będzie korzystało z instalacji Pythona ze środowiska podstawowego.Prawdopodobnie dzieje się tak, że istnieje jądro użytkownika python3. Uruchom polecenie,
jupyter kernelspec list
aby wyświetlić listę wszystkich środowisk. Na przykład, jeśli masz komputer Mac, otrzymasz następujące informacje (moja nazwa użytkownika to Ted).To, co robi tutaj Jupyter, to przeszukiwanie trzech różnych ścieżek w poszukiwaniu jąder. Przechodzi od użytkownika , do środowiska , do systemu . Zobacz ten dokument aby uzyskać więcej informacji na temat ścieżek, które wyszukuje dla każdego systemu operacyjnego.
Dwa powyższe jądra znajdują się na ścieżce użytkownika, co oznacza, że będą one dostępne niezależnie od środowiska, z którego uruchamiany jest notatnik jupyter. Oznacza to również, że jeśli na poziomie środowiska istnieje inne jądro „python3”, nigdy nie będzie można uzyskać do niego dostępu.
Dla mnie bardziej sensowne jest, że wybranie jądra „python3” ze środowiska, z którego uruchomiłeś notebooka, powinno uruchomić Pythona z tego środowiska.
Możesz sprawdzić, czy masz inne środowisko „python3”, patrząc na ścieżkę wyszukiwania Env dla swojego systemu operacyjnego (patrz link do dokumentów powyżej). Dla mnie (na moim komputerze Mac) wydałem następujące polecenie:
I rzeczywiście miałem tam wymienione jądro „python3”.
Dzięki temu komentarzowi do wydania GitHub (spójrz na pierwszą odpowiedź) możesz usunąć środowisko użytkownika „python3” za pomocą następującego polecenia:
Teraz, gdy uruchomisz
jupyter kernelspec list
, zakładając, że test_env jest nadal aktywny, otrzymasz:Zauważ, że ta ścieżka znajduje się w katalogu test_env. Jeśli utworzysz nowe środowisko, zainstalujesz jupyter, aktywujesz je i wyświetlisz listę jąder, otrzymasz kolejne jądro „python3” znajdujące się na ścieżce środowiska.
Jądro użytkownika „python3” miało pierwszeństwo przed jakimkolwiek jądrem Env „python3”. Po usunięciu jądro aktywnego środowiska „python3” zostało ujawnione i można je było wybrać za każdym razem. Eliminuje to potrzebę ręcznego tworzenia jąder. Ma to również większy sens w zakresie tworzenia oprogramowania, w którym chciałoby się odizolować w jednym środowisku. Uruchamianie jądra innego niż środowisko hosta nie wydaje się naturalne.
Wydaje się również, że ten użytkownik „python3” nie jest domyślnie instalowany dla wszystkich, więc nie wszyscy mają do czynienia z tym problemem.
źródło
(w środowisku conda, w którym uruchamiasz notatnik jupyter), wszystkie środowiska conda będą dostępne automatycznie. Aby uzyskać dostęp do innych środowisk, należy zainstalować odpowiednie jądra. Oto ref .
źródło
Dużo zmagamy się z tym problemem i oto, co nam odpowiada. Jeśli korzystasz z kanału conda-forge , ważne jest, aby upewnić się, że używasz zaktualizowanych pakietów
conda-forge
, nawet wMiniconda
środowisku root.Więc zainstaluj Miniconda , a następnie wykonaj:
a twoje niestandardowe środowisko pojawi się w Jupyter jako dostępne jądro, o ile
ipykernel
było wymienione do instalacji w twoimcustom_env.yml
pliku, jak w tym przykładzie:Aby tylko udowodnić, że działa z wieloma niestandardowymi środowiskami, oto zrzut ekranu z systemu Windows:
źródło
nb_conda_kernels
Pakiet jest najlepszym sposobem korzystaniajupyter
zconda
. Przy minimalnych zależnościach i konfiguracji pozwala używać innych środowisk conda z notebooka jupyter działającego w innym środowisku. Cytując swoją dokumentację :Następnie wystarczy uruchomić serwer notebooka jupyter:
Pomimo mnóstwa odpowiedzi i starań @ merv o ich poprawę, nadal trudno znaleźć dobrą. Zrobiłem ten CW, więc proszę głosować na górę lub poprawić!
źródło
Natrafiłem na ten sam problem, w którym moje nowe środowisko conda
myenv
nie mogło zostać wybrane jako jądro lub nowy notatnik. I biegniejupter notebook
z env dała ten sam wynik.Moje rozwiązanie i to, czego dowiedziałem się o tym, jak notebooki Jupyter rozpoznają enkopy Conda i jądra:
Instalowanie jupyter i ipython
myenv
z conda:Następnie działam
jupter notebook
poza środowiskiem env wymienionymmyenv
jako jądro wraz z moimi poprzednimi środowiskami.Uruchamianie notebooka po aktywowaniu środowiska:
ukrywa wszystkie moje inne jądra środowiska i pokazuje tylko moje jądra językowe:
źródło
Działa to dla mnie w systemie Windows 10 i najnowszym rozwiązaniu:
1) Wejdź do tego środowiska conda (aktywuj swoją nazwę_env)
2) conda install -n twoja_nazwa_IP ipernern
3) python -m ipykernel install --user --name build_central --display-name "twoja_nazwa_nazwy”
(UWAGA: uwzględnij cudzysłowy wokół „twoja_nazwa_vv”, w kroku 3)
źródło
Było to tak frustrujące, że moim problemem było to, że w nowo zbudowanym środowisku conda python36 jupyter odmówił załadowania „dna morskiego” - nawet jeśli dno morskie zostało zainstalowane w tym środowisku. Wydawało się, że jest w stanie zaimportować wiele innych plików z tego samego środowiska - na przykład numpy i pandy, ale po prostu nie ma dna morskiego. Próbowałem wielu poprawek sugerowanych tutaj i w innych wątkach bez powodzenia. Dopóki nie zdałem sobie sprawy, że Jupyter nie uruchomił Pythona jądra z tego środowiska, ale uruchomił pytona systemowego jako jądro. Chociaż przyzwoicie wyglądające jądro i kernel.json były już obecne w środowisku. Dopiero po przeczytaniu tej części dokumentacji ipython: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments i użyciu następujących poleceń:
Udało mi się wszystko dobrze załatwić. (Właściwie nie użyłem zmiennej —user).
Jednej rzeczy, której jeszcze nie wymyśliłem, to jak ustawić domyślnego Pythona na „Python (other-env)”. Obecnie istniejący plik .ipynb otwarty z ekranu głównego będzie używać systemowego pytona. Muszę użyć menu jądra „Zmień jądro”, aby wybrać python środowiska.
źródło
Podczas gdy odpowiedź @ coolscitist działała dla mnie, istnieje również sposób, który nie zaśmieca środowiska jądra pełnym pakietem jupyter + deps. Jest to opisane w dokumentacji ipython i jest (podejrzewam) konieczne tylko wtedy, gdy uruchamiasz serwer notebooka w środowisku innym niż podstawowy.
Możesz sprawdzić, czy działa, używając
źródło
conda install nb_conda_kernels
działa lepiej.python -m ipykernel install
jest to tradycyjna droga rejestracji env i działa dla innych env (nie Conda). Chodzi onb_conda_kernels
to, że nie musisz tego robić ręcznie, dopóki instalujeszipykernel
.Miałem podobny problem i znalazłem rozwiązanie, które działa na komputery Mac, Windows i Linux. Wymaga kilku kluczowych składników, które znajdują się w powyższej odpowiedzi:
Aby zobaczyć conda env w notatniku Jupyter, potrzebujesz:
następujący pakiet w twojej bazie env:
conda install nb_conda
następujący pakiet w każdej tworzonej env:
conda install ipykernel
sprawdź konfigurację
jupyter_notebook_config.py
pierwszego sprawdzania, czy masz
jupyter_notebook_config.py
lokalizację podaną przez,jupyter --paths
jeśli nie istnieje, utwórz ją, uruchamiając polecenie
jupyter notebook --generate-config
add lub upewnij się, że:
c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'
Env, który możesz zobaczyć w swoim terminalu:
W Jupyter Lab możesz zobaczyć tę samą env jak powyżej zarówno Notatnika, jak i Konsoli:
Możesz wybrać env, gdy masz otwarty notatnik:
Bezpiecznym sposobem jest utworzenie specyficznej env, z której uruchomisz przykładową
jupyter lab
komendę env . Aktywuj swoje środowisko. Następnie dodaj przykład rozszerzenia jupyter lab przykład rozszerzenia jupyter lab . Potem możesz biecjupyter lab
źródło
Postępuj zgodnie z instrukcjami w dokumentacji iPython, aby dodać różne środowiska conda do listy jąder do wyboru w Jupyter Notebook. Podsumowując, po instalacji
ipykernel
musisz aktywować każde środowisko conda jeden po drugim w terminalu i uruchomić poleceniepython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
, gdziemyenv
jest środowisko (jądro), które chcesz dodać.źródło
Możliwy problem związany z kanałem
Miałem ten problem (ponownie) i okazało się, że zainstalowałem z kanału Conda-Forge ; usunięcie go i ponowna instalacja z kanału anakondy zamiast tego naprawiło to dla mnie.
Aktualizacja : ponownie miałem ten sam problem z nową env, tym razem instalowałem
nb_conda_kernels
z kanału anakondy , ale mójjupyter_client
był z kanału conda-forge . Odinstalowanienb_conda_kernels
i ponowne zainstalowanie zaktualizowało to do kanału o wyższym priorytecie.Upewnij się więc, że masz zainstalowane właściwe kanały :)
źródło
jupyter
inb_conda_kernels
powinien być zainstalowany w jednym środowisku - tutaj zawsze uciekaszjupyter notebook
. Nowe envs potrzebują tylkoipykernel
, ale nie powinny być aktywowane podczas działaniajupyter notebook
.W moim przypadku przy użyciu systemu Windows 10 i Conda 4.6.11, uruchamiając polecenia
z terminala przy aktywnym środowisku nie wykonało zadania po otwarciu Jupytera z tego samego wiersza poleceń przy użyciu
conda jupyter notebook
.Rozwiązaniem było najwyraźniej otwarcie Jupyter z Anaconda Navigator, przechodząc do mojego środowiska w środowiskach: Otwórz Anaconda Navigator, wybierz środowisko w środowiskach, naciśnij przycisk „Odtwórz” w wybranym środowisku i wybierz „otwórz za pomocą Jupyter Notebook”.
Środowiska w Anaconda Navigator do uruchamiania Jupyter z wybranego środowiska
źródło
ipykernel
we wszystkich środowiskach, których chcesz używać w Jupyter jako jądra.