Como saber qual está rodando no notebook Jupyter?

110

Eu uso o notebook Jupyter em um navegador para programação Python, instalei o Anaconda (Python 3.5). Mas tenho certeza de que o Jupyter está executando meus comandos python com o interpretador python nativo e não com anaconda. Como posso alterá-lo e usar o Anaconda como intérprete?

Ubuntu 16.10 - Anaconda3

Vencedor
fonte
2
Você pode encontrar as configurações do kernel para a configuração do Jupyter e modificar o executável Python
OneCricketeer

Respostas:

190
from platform import python_version

print(python_version())

Isso lhe dará a versão exata do python executando seu script. por exemplo, saída:

3.6.5
Davies Odu
fonte
1
esta deve ser selecionada como a resposta à pergunta postada.
Dark Templar
5
O OP está pedindo para encontrar qual executável está rodando (sistema / anaconda), não qual versão. A resposta de P. Camilleri é a solução
MrMartin
67
import sys
sys.executable

lhe dará o intérprete. Você pode selecionar o intérprete que deseja ao criar um novo bloco de notas. Certifique-se de que o caminho para o seu interpretador anaconda foi adicionado ao seu caminho (provavelmente em algum lugar em seu bashrc / bash_profile).

Por exemplo, eu costumava ter a seguinte linha no meu .bash_profile, que adicionava manualmente:

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

EDITAR : Como mencionado em um comentário, esta não é a maneira correta de adicionar anaconda ao caminho. Citando o documento do Anaconda, isso deve ser feito após a instalação, usando conda init:

Devo adicionar o Anaconda ao macOS ou Linux PATH?

Não recomendamos adicionar o Anaconda ao PATH manualmente. Durante a instalação, ser-lhe-á perguntado “Deseja que o instalador inicialize o Anaconda3 executando conda init?” Recomendamos “sim”. Se você digitar "não", o conda não modificará seus scripts de shell. Para inicializar após a conclusão do processo de instalação, primeiro execute source <path to conda>/bin/activatee, em seguida, executeconda init

P. Camilleri
fonte
Estou executando isso no Spyder e nenhum resultado, mas o Jupyter está ok. Eu quero saber porque?
TokyoToo
1
Os documentos do Conda não recomendam adicionar ao PATH dessa forma.
AMC de
@AMC você está certo, obrigado. Eu editei para apontar para conda init
P. Camilleri
40
import sys
print(sys.executable)
print(sys.version)
print(sys.version_info)

Visto abaixo: - saída quando eu executo o JupyterNotebook fora de um venv do CONDA

/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)
 

Visto abaixo quando eu executo o mesmo JupyterNoteBook dentro de um CONDA Venv criado com o comando -

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

no meu Notebook Jupyter, ele imprime: -

/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)

também se você já tem vários VENVs criados com diferentes versões do Python, você muda para o Kernel desejado escolhendo KERNEL >> CHANGE KERNEL de dentro do menu JupyterNotebook ... JupyterNotebookScreencapture

Também para instalar o ipykernel dentro de um ambiente virtual CONDA existente -

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

Fonte --- 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]

Instale a especificação do kernel IPython.

argumentos opcionais: -h, --help mostra esta mensagem de ajuda e sai --user Instalação para o usuário atual ao invés de --name NOME Especifique um nome para o kernelspec. Isso é necessário para ter vários kernels IPython ao mesmo tempo. --display-name DISPLAY_NAME Especifique o nome de exibição para o kernelspec. Isso é útil quando você tem vários kernels IPython. --profile PROFILE Especifique um perfil IPython para carregar. Isso pode ser usado para criar versões personalizadas do kernel. --prefix PREFIX Especifique um prefixo de instalação para o kernelspec. Isso é necessário para instalar em um local não padrão, como um conda / virtual-env. --sys-prefix Instala no sys.prefix do Python. Abreviação de --prefix = '/ Users / bussonniermatthias / anaconda'. Para uso em conda / virtual-envs.

Rohit Dhankar
fonte
0

Supondo que você tenha o sistema de back-end errado, você pode alterar o back-end kernelcriando um novo ou editando o existente kernel.jsonna kernelspasta de seu caminho de dados jupyter jupyter --paths. Você pode ter vários kernels (R, Python2, Python3 (+ virtualenvs), Haskell), por exemplo, você pode criar um Anacondakernel específico:

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

Deve criar um novo kernel:

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

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

Você precisa se certificar de que o ipykernelpacote está instalado na distribuição anaconda.

Desta forma, você pode apenas alternar entre os kernels e ter diferentes notebooks usando kernels diferentes.

Um campeão
fonte
Para adicionar mais kernelspecs, consulte também os documentos de instalação do kernel IPython
Thomas K
-1

Criação de um ambiente virtual para Jupyter Notebooks

Uma instalação mínima do Python é

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

Então você pode criar e usar o ambiente

/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

Você pode fazer um kernel para Jupyter com

ipython3 kernel install --user --name=test
Daisuke Aramaki
fonte