Как узнать, что работает в ноутбуке Jupyter?

Я использую Jupyter notebook в браузере для программирования на Python, я установил Anaconda (Python 3.5). Но я совершенно уверен, что Jupyter управляет моими командами python с помощью собственного интерпретатора python, а не с anaconda. Как я могу изменить его и использовать Anaconda в качестве интерпретатора?

Спасибо!

Ubuntu 16.10 - Anaconda3

Ответ 1

import sys
sys.executable

предоставит вам переводчика. Вы можете выбрать нужный интерпретатор при создании нового ноутбука. Убедитесь, что путь к вашему интерпретатору anaconda добавлен к вашему пути (скорее всего, в вашем файле bashrc/bash_profile).

Например, у меня есть следующая строка в моем .bash_profile:

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

Ответ 2

from platform import python_version

print(python_version())

Это даст вам точную версию Python, на котором выполняется ваш скрипт. например, вывод:

3.6.5

Ответ 3

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

Видно ниже: - вывод, когда я запускаю JupyterNotebook вне помещения 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)

Видно ниже, когда я запускаю тот же JupyterNoteBook в CONDA Venv, созданном с помощью команды -

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

в моем ноутбуке Jupyter он печатает:

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

также, если у вас уже есть различные VENV, созданные с разными версиями Python, вы переключаетесь на нужное ядро, выбирая KERNEL >> CHANGE KERNEL в меню JupyterNotebook... JupyterNotebookScreencapture

Также для установки ipykernel в существующей виртуальной среде CONDA -

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

Источник --- 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]

Установите спецификацию ядра IPython.

необязательные аргументы: -h, - -h elp показать это справочное сообщение и выйти --user Установить для текущего пользователя вместо общесистемного --name ИМЯ Укажите имя для спецификации ядра. Это необходимо, чтобы иметь несколько ядер IPython одновременно. --display-name DISPLAY_NAME Укажите отображаемое имя для спецификации ядра. Это полезно, когда у вас несколько ядер IPython. --profile PROFILE Укажите профиль IPython для загрузки. Это может быть использовано для создания пользовательских версий ядра. --prefix PREFIX Укажите префикс установки для спецификации ядра. Это необходимо для установки в нестандартное расположение, такое как conda/virtual-env. --sys-prefix Установить в Python sys.prefix. Сокращение для --prefix = '/Users/bussonniermatthias/anaconda'. Для использования в conda/virtual-envs.

Ответ 4

Предполагая, что у вас неправильная бэкэнд-система, вы можете изменить бэкэнд kernel, создав новую или отредактировав существующую kernel.json в папке kernels вашего пути данных jupyter jupyter --paths. Вы можете иметь несколько ядер (R, Python2, Python3 (+ virtualenvs), Haskell), например. вы можете создать конкретное ядро ​​Anaconda:

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

Создать новое ядро:

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

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

Вам нужно убедиться, что пакет ipykernel установлен в дистрибутиве anaconda.

Таким образом, вы можете просто переключаться между ядрами и иметь разные ноутбуки, использующие разные ядра.