Jak sprawdzić, które działa w notatniku Jupyter?


111

Używam notebooka Jupyter w przeglądarce do programowania w Pythonie, zainstalowałem Anacondę (Python 3.5). Ale jestem całkiem pewien, że Jupyter uruchamia moje polecenia Pythona za pomocą natywnego interpretera Pythona, a nie anakondy. Jak mogę to zmienić i używać Anacondy jako tłumacza?

Ubuntu 16.10 - Anaconda3


2
Możesz znaleźć ustawienia jądra dla konfiguracji Jupyter i zmodyfikować plik wykonywalny Pythona
OneCricketeer

Odpowiedzi:


190
from platform import python_version

print(python_version())

To da ci dokładną wersję Pythona, w którym działa twój skrypt. np. wyjście:

3.6.5

1
należy to wybrać jako odpowiedź na opublikowane pytanie.
Dark Templar

5
OP pyta, który plik wykonywalny jest uruchomiony (system / anaconda), a nie która wersja. Odpowiedź P. Camilleri jest rozwiązaniem
MrMartin

68
import sys
sys.executable

zapewni tłumacza. Podczas tworzenia nowego notatnika możesz wybrać odpowiedniego tłumacza. Upewnij się, że ścieżka do twojego interpretera anaconda jest dodana do twojej ścieżki (najprawdopodobniej gdzieś w twoim bashrc / bash_profile).

Na przykład miałem następujący wiersz w moim .bash_profile, który dodałem ręcznie:

export PATH="$HOME/anaconda3/bin:$PATH"

EDYCJA : Jak wspomniano w komentarzu, nie jest to właściwy sposób dodawania anakondy do ścieżki. Cytując dokument Anaconda, należy to zrobić po instalacji, używając conda init:

Czy powinienem dodać Anacondę do ścieżki macOS lub Linux?

Nie zalecamy ręcznego dodawania Anacondy do PATH. Podczas instalacji zostaniesz zapytany „Czy chcesz, aby instalator zainicjował Anaconda3 przez uruchomienie conda init?” Zalecamy „tak”. Jeśli wpiszesz „nie”, conda w ogóle nie zmodyfikuje twoich skryptów powłoki. Aby zainicjować po zakończeniu procesu instalacji, najpierw uruchom, source <path to conda>/bin/activatea następnie uruchomconda init


Uruchamiam to w Spyder i bez wyników, ale Jupyter jest w porządku. Zastanawiam się dlaczego?
TokyoToo

1
Dokumentacja Conda odradza dodawanie do PATH w ten sposób.
AMC,

@AMC masz rację, dziękuję. Zredagowałem, aby wskazać na conda init
P. Camilleri

43
import sys
print(sys.executable)
print(sys.version)
print(sys.version_info)

Widziane poniżej: - wyjście, gdy uruchamiam JupyterNotebook poza CONDA venv

/home/dhankar/anaconda2/bin/python
2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:42:40) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
sys.version_info(major=2, minor=7, micro=12, releaselevel='final', serial=0)
 

Widoczne poniżej, gdy uruchamiam ten sam JupyterNoteBook w CONDA Venv utworzonym za pomocą polecenia -

conda create -n py35 python=3.5 ## Here - py35 , is name of my VENV

w moim Jupyter Notebook drukuje: -

/home/dhankar/anaconda2/envs/py35/bin/python
3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)

również jeśli masz już różne VENV utworzone w różnych wersjach Pythona, przełączasz się na żądane Kernel, wybierając KERNEL >> ZMIEŃ Jądro z menu JupyterNotebook ... JupyterNotebookScreencapture

Aby zainstalować ipykernel w istniejącym środowisku wirtualnym CONDA -

http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments

Źródło --- https://github.com/jupyter/notebook/issues/1524

 $ /path/to/python -m  ipykernel install --help
 usage: ipython-kernel-install [-h] [--user] [--name NAME]
                          [--display-name DISPLAY_NAME]
                          [--profile PROFILE] [--prefix PREFIX]
                          [--sys-prefix]

Zainstaluj specyfikację jądra IPython.

opcjonalne argumenty: -h, --help wyświetla ten komunikat pomocy i wychodzi --user Instaluje dla bieżącego użytkownika zamiast ogólnosystemowego --name NAZWA Podaj nazwę dla kernelspec. Jest to potrzebne, aby mieć jednocześnie wiele jąder IPythona. --display-name NAZWA-WYŚWIETLACZA Określa nazwę wyświetlaną dla specyfikacji jądra. Jest to przydatne, gdy masz wiele jąder IPythona. --profile PROFIL Określa profil IPython do załadowania. Można to wykorzystać do tworzenia niestandardowych wersji jądra. --prefix PREFIX Określa przedrostek instalacyjny dla specyfikacji jądra. Jest to konieczne do zainstalowania w lokalizacji innej niż domyślna, takiej jak conda / virtual-env. --sys-prefix Zainstaluj w sys.prefix Pythona. Skrót dla --prefix = '/ Users / bussonniermatthias / anaconda'. Do użytku w conda / virtual-envs.


0

Zakładając, że masz niewłaściwy system zaplecza, możesz zmienić zaplecze kernel, tworząc nowy lub edytując istniejący kernel.jsonw kernelsfolderze ścieżki danych jupyter jupyter --paths. Możesz mieć wiele jąder (R, Python2, Python3 (+ virtualenvs), Haskell), np. Możesz stworzyć Anacondaokreślone jądro:

$ <anaconda-path>/bin/python3 -m ipykernel install --user --name anaconda --display-name "Anaconda"

Powinien utworzyć nowe jądro:

<jupyter-data-dir>/kernels/anaconda/kernel.json

{
    "argv": [ "<anaconda-path>/bin/python3", "-m", "ipykernel", "-f", "{connection_file}" ],
    "display_name": "Anaconda",
    "language": "python"
}

Musisz upewnić się, że ipykernelpakiet jest zainstalowany w dystrybucji Anaconda.

W ten sposób możesz po prostu przełączać się między jądrami i mieć różne notatniki używające różnych jąder.


Aby dodać więcej specyfikacji jądra, zobacz także dokumentację dotyczącą instalacji jądra
Thomas K

-1

Tworzenie wirtualnego środowiska dla notebooków Jupyter

Minimalna instalacja Pythona to

sudo apt install python3.7 python3.7-venv python3.7-minimal python3.7-distutils python3.7-dev python3.7-gdbm python3-gdbm-dbg python3-pip

Następnie możesz stworzyć i używać środowiska

/usr/bin/python3.7 -m venv test
cd test
source test/bin/activate
pip install jupyter matplotlib seaborn numpy pandas scipy
# install other packages you need with pip/apt
jupyter notebook
deactivate

Możesz stworzyć jądro dla Jupytera za pomocą

ipython3 kernel install --user --name=test
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.