Як дізнатися, що працює в блокноті Jupyter?


99

Я використовую блокнот Jupyter у браузері для програмування на Python, я встановив Anaconda (Python 3.5). Але я цілком впевнений, що Юпітер запускав мої команди python з власним інтерпретатором python, а не з анакондою. Як я можу змінити його та використовувати Anaconda як перекладача?

Ubuntu 16.10 - Anaconda3


2
Ви можете знайти налаштування ядра для конфігурації Jupyter та змінити виконуваний файл python
OneCricketeer

Відповіді:


171
from platform import python_version

print(python_version())

Це дасть вам точну версію python, на якій запущений ваш сценарій. наприклад вихід:

3.6.5

1
це слід вибрати як відповідь на опубліковане питання.
Темний тамплієр

4
OP запитує, який виконуваний файл працює (система / анаконда), а не яку версію. Відповідь П. Камільєрі - це рішення
MrMartin

65
import sys
sys.executable

дасть вам перекладача. Під час створення нового блокнота ви можете вибрати потрібного вам перекладача. Переконайтеся, що шлях до вашого інтерпретатора anaconda доданий до вашого шляху (десь у вашому bashrc / bash_profile, швидше за все).

Наприклад, у мене раніше був такий рядок у моєму .bash_profile, який я додав вручну:

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

РЕДАГУВАТИ : Як зазначалося в коментарі, це не належний спосіб додати анаконду до шляху. Цитуючи документ Anaconda, це слід робити замість цього після встановлення, використовуючи conda init:

Чи слід додати Anaconda до macOS або Linux PATH?

Ми не рекомендуємо додавати Anaconda до PATH вручну. Під час встановлення вас запитають "Чи хочете ви, щоб установник ініціалізував Anaconda3, запустивши conda init?" Ми рекомендуємо “так”. Якщо ви введете "ні", тоді conda взагалі не змінить ваші сценарії оболонки. Для того, щоб ініціалізуватись після завершення процесу встановлення, спочатку запустіть, source <path to conda>/bin/activateа потім запустітьconda init


Я запускаю це в Spyder, і результатів немає, але Юпітер в порядку. Цікаво, чому?
TokyoToo

1
Документи Conda рекомендують не додавати до PATH так.
AMC

@AMC ти маєш рацію, дякую. Я відредагував, щоб вказати на conda init
P. Camilleri

38
 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, --help показати це довідкове повідомлення та вийти --user Встановити для поточного користувача замість загальносистемного --name ІМЯ Вкажіть ім'я для kernelspec. Це потрібно, щоб одночасно мати кілька ядер IPython. --display-name DISPLAY_NAME Вкажіть відображуване ім'я для ядра. Це корисно, якщо у вас кілька ядер IPython. --profile PROFILE Вкажіть профіль IPython для завантаження. Це може бути використано для створення власних версій ядра. --prefix PREFIX Вкажіть префікс встановлення для ядра. Це потрібно для встановлення в місце, яке не за замовчуванням, наприклад, conda / virtual-env. --sys-prefix Встановити до sys.prefix Python. Стенографія для --prefix = '/ Users / bussonniermatthias / anaconda'. Для використання в conda / virtual-envs.


0

Припускаючи, що у вас неправильна серверна система, ви можете змінити серверну систему 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.

Таким чином, ви можете просто перемикатися між ядрами і мати різні блокноти з використанням різних ядер.


Щоб додати більше специфікацій ядра, див. Також документи щодо встановлення ядра IPython
Thomas K

-1

Створення віртуального середовища для ноутбуків Jupyter

Мінімальною установкою 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

Тоді ви можете створювати та використовувати середовище

/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

Ви можете зробити ядро ​​для Jupyter за допомогою

ipython3 kernel install --user --name=test
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.