Як додати ядро ​​python3 до юпітера (IPython)


321

Мої Jupyterноутбуки встановлені з python 2ядром. Я не розумію, чому. Я, можливо, щось зіпсував, коли зробив установку. Я вже python 3 встановив. Як я можу додати його Jupyter? Ось скріншот того, як Jupyterвиглядає за замовчуванням прострочений python3 -m install jupyterі відкритий у браузері jupyter notebook: введіть тут опис зображення


python2є вашим ядром за замовчуванням. Оскільки ви встановили ipython в python2інтерпретаторі, ви також отримаєте python2ядро за замовчуванням. Якщо ви замість цього встановили в a python3.x, ви матимете за замовчуванням python3ядро.
чел

Я вважаю цей блог досить корисним: datapoly.org/2018/06/18/…
Koo

Відповіді:


295

Це працювало для мене на Ubuntu 16.04:

python2 -m pip install ipykernel
python2 -m ipykernel install --user

python3 -m pip install ipykernel
python3 -m ipykernel install --user

Посилання на документацію:
Ядра для Python 2 та 3 . Встановлення ядра IPython - Документи IPython.


3
ах, я оновив ноутбук: sudo pip install -U ipykernel і працює
Jamesszm

Працює на macOS Sierra. Навіть працювали в умовах конди!
оса

Працювали над ubantu 16.04, просто оновіть сторінку зошита. Дякую!
ketankk

1
Я спробував це, але 3-я та 4-а команди не спрацювали, тому мені довелося встановити pip3 і запустити їх як python3 -m pip встановити ipykernel python3 -m ipykernel встановити --user
Мерт Кухачі

Відмінно працював над Mac Mojave
mleafer

228

Переконайтеся, що ви ipykernelвстановили та використовуєте ipython kernel installдля того, щоб скинути kernelspec у потрібне місце для python2. Тоді ipython3 kernel installдля Python3. Тепер ви маєте можливість вибирати між двома ядрами незалежно від того, використовуєте ви jupyter notebook, ipython notebookабо ipython3 notebook(останні два застарілі).

Зауважте, що якщо ви хочете встановити певний виконуваний файл Python, ви можете скористатися наступним трюком:

path/to/python -m ipykernel install <options>

Це працює під час використання середовищ (venv, conda, ...) і <options>дозволяє вам назвати ваше ядро ​​(див. --help). Так ви можете зробити

conda create -n py36-test python=3.6
source activate py36-test
python -m ipykernel install --name py36-test
source deactivate

А тепер ви отримуєте ім’я ядра py36-testу спадному меню разом з іншими.

Див. Розділ Використання Python 2.x та Python 3.x у IPython Notebook, який містить більш пізню інформацію.


2
Перша інструкція спрацювала добре. Другий видав, що: [TerminalIPythonApp] ПОПЕРЕДЖЕННЯ | Файл не знайдено: 'kernelspec'
Quickbug

2
вам також потрібно встановити / оновити IPython на python3.
Метт

9
Можливо, вам знадобиться --userабо --prefixдля встановлення користувача. Це може працювати для venvs, але логіка для цього не введена. Вам потрібно дублювати kernelspec і чітко посилатися на бітону python.
Метт

2
Дякую, це працювало для мене і на Anaconda - запустіть ipython kernelspec install-selfтоді активувати Python3 з source activate python3тією ж командоюipython kernelspec install-self
Colin Gravill

3
рішення Dazzle працювало для мене на Ubuntu 14.04 (відповідь нижче). Я так і зробив sudo apt-get remove ipython3 ipython3-notebook; sudo apt-get install pip3; sudo pip3 install ipython; sudo ipython kernelspec install-self; sudo ipython3 kernelspec install-self. Тоді у мене був звичайний новий ноутбук python3, коли я запускався ipython notebookнормально.
Теке5,

125
  1. Отримав ноутбук ipython із Python2 (у Windows7)
  2. оновлення до Юпітера з pip install -U jupyter
  3. встановити Python3
  4. знову встановити Jupyter за допомогою pip3 install jupyter
  5. встановити ядро ​​Python3 за допомогою ipython3 kernelspec install-self
  6. Нарешті я отримав 2 робочих ядра.

чудові результати


1
У термінальних повідомленнях рекомендується використовувати "jupyter" замість ipython. Хоча це все одно працює!
Джуліан

2
Так, нарешті! Без ipython3 kernelspec install-selfкоманди він просто замінив ядро ​​python3 на python2. Ніж ви.
Еміліо Ферруччі

1
Запустіть установку ядра ipython замість кроку 6. ipython3 kernelspec install-selfбільше не працює та jupyter kernelspec install-selfзастаріло.
ambodi

Що є PYTHONPATHу кожному з вищезазначених кроків?
користувач3226167


74

для останніх версій jupyter / ipython : використанняjupyter kernelspec

Повний документ: https://ipython.readthedocs.io/en/latest/install/kernel_install.html

список поточних ядер

$ jupyter kernelspec list
Available kernels:
  python2    .../Jupyter/kernels/python2
  python3    .../Jupyter/kernels/python3

У моєму випадку налаштування ядра python3 було порушено, оскільки пов'язаного py3.5 вже не було, замінено py3.6

додавання / видалення ядер

Видалити:

$ jupyter kernelspec uninstall python3

Додайте новий: Використовуючи Python, який ви хочете додати, і вказуючи на python, на якому працює ваш юпітер:

$ /path/to/kernel/env/bin/python -m ipykernel install --prefix=/path/to/jupyter/env --name 'python-my-env'

Перегляньте більше прикладів у https://ipython.readthedocs.io/en/6.5.0/install/kernel_install.html#kernels-for-different-environments

Знову список:

$ jupyter kernelspec list
Available kernels:
  python3    /usr/local/lib/python3.6/site-packages/ipykernel/resources
  python2    /Users/stefano/Library/Jupyter/kernels/python2

Документ: https://jupyter-client.readthedocs.io/en/latest/kernels.html#kernelspecs

Деталі

Доступні ядра перелічені у kernelsпапці в Jupyter DATA DIRECTORY ( детальну інформацію див. У розділі http://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html ).

Наприклад, на macosx це було б /Users/YOURUSERNAME/Library/Jupyter/kernels/

ядро просто описується kernel.jsonфайлом, наприклад. для/Users/me/Library/Jupyter/kernels/python3/kernel.json

{
 "argv": [
  "/usr/local/opt/python3/bin/python3.5",
  "-m",
  "ipykernel",
  "-f",
  "{connection_file}"
 ],
 "language": "python",
 "display_name": "Python 3"
}

Замість того, щоб маніпулювати цим рукою, ви можете скористатися kernelspecкомандою (як вище). Раніше він був доступний через ipython, зараз через jupyter ( http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments - https://jupyter-client.readthedocs.io/ en / latest / kernels.html # kernelspecs ).

$ jupyter kernelspec help
Manage Jupyter kernel specifications.

Subcommands
-----------

Subcommands are launched as `jupyter kernelspec cmd [args]`. For information on
using subcommand 'cmd', do: `jupyter kernelspec cmd -h`.

list
    List installed kernel specifications.
install
    Install a kernel specification directory.
uninstall
    Alias for remove
remove
    Remove one or more Jupyter kernelspecs by name.
install-self
    [DEPRECATED] Install the IPython kernel spec directory for this Python.

To see all available configurables, use `--help-all`

Ядра для інших мов

До речі, це питання не суворо пов'язане, але є багато інших ядер ... https://github.com/jupyter/jupyter/wiki/Jupyter-kernels


отримав протокол без коментаря ... було б цікаво дізнатися, коли це не працює!
Стефано

2
Відмінна відповідь. Я вже тиждень стикаюся з цим питанням, і не зміг знайти рішення. Я повинен був би розглянути ваше рішення раніше;)
DucCuong

5
Не працює для мене на моїй Mac OS x ver 10.13.5. Python3 встановлюється за допомогою brew, а jupyter встановлюється за допомогою pip3. Він пропонує лише ядро ​​python2. kernelspec install <path_to_python_3>, здається, працює, але список kernelspec не показує його.
Президент Джеймс К. Полк

@JamesKPolk досить важко налагодити, у чому полягає ваша проблема, з вашого короткого опису, але я дотримувався аналогічної вашій установці, за винятком того, що тепер мій py3 надходить із pyenv (простіше керувати декількома версіями, ніж безпосередньо через brew).
Стефано

1
Не працює і для мене. Після запуску jupyter kernelspec install $HOME/.pyenv/versions/metrics/bin --name=metricskernel --userя отримую Installed kernelspec metricskernel in $HOME/.local/share/jupyter/kernels/metricskernel, однак немає kernel.json всередині, тому він не входить до списку kernelspec list. Натомість всередині є купа сценаріїв, скопійованих з $HOME/.pyenv/versions/metrics/bin. @JamesKPolk це схоже на вашу проблему? чи вдалося це вирішити?
Гліб Бабій

39

Якщо ви використовуєте дистрибутив анаконди, це працювало для мене (на macintosh):

$ conda create -n py3k python=3 anaconda

$ source activate py3k

$ ipython kernelspec install-self

Просто примітка до останньої команди:

(py3k)Monas-MacBook-Pro:cs799 mona$ ipython kernelspec install-self
[TerminalIPythonApp] WARNING | Subcommand `ipython kernelspec` is deprecated and will be removed in future versions.
[TerminalIPythonApp] WARNING | You likely want to use `jupyter kernelspec` in the future
[InstallNativeKernelSpec] WARNING | `jupyter kernelspec install-self` is DEPRECATED as of 4.0. You probably want `ipython kernel install` to install the IPython kernelspec.
[InstallNativeKernelSpec] Installed kernelspec python3 in /usr/local/share/jupyter/kernels/python3
(py3k)Monas-MacBook-Pro:cs799 mona$ ipython kernel install 
Installed kernelspec python3 in /usr/local/share/jupyter/kernels/python3

Під час тестування в OSX Yosemite з вищезазначеними кроками та введення jupter notebookта створення нового ноутбука у браузері ви побачите наступний знімок екрана: введіть тут опис зображення


4
Працював для мене, але довелося додати --user, оскільки я маю специфічну для користувача установку:
brianray

Працює як шарм!
SeaWarrior404

Зауважте, що install-selfзараз застаріле.
Крістіан Гудон

31

Наступна команда працює для мене на macOS Sierra (10.12.3)

python3 -m pip install ipykernel
python3 -m ipykernel install --user

перевірте це за допомогою списку ядер jupyter доступних ядер: python3 / Користувачі / адміністратор / Бібліотека / Юпітер / ядра / python3 python2 / anaconda2 / share / jupyter / ядра / python2


1
Працює для мене на Ubuntu 18.04
akarve

Працює і на моїй машині Windows 7.
Крістіан К.

Працює і на його машині Windows 10.
Suisse

Працює і на Високій Сьєррі 10.13.6.
Spacetyper

26

Я успішно встановив ядро ​​python3 на macOS El Capitan (версія ipython: 4.1.0) із наступними командами.

python3 -m pip install ipykernel
python3 -m ipykernel install --user

Ви можете побачити всі встановлені ядра jupyter kernelspec list.

Більше інформації можна отримати тут


Дякую, що також працював на Linux Mint. pip3і Python3-setuptoolsбули також потрібні.
кардамон

19

відкрийте термінал (або cmd для вікна), а потім запустіть наступні команди: (У вікно, у другому рядку опустіть "джерело".)

conda create -n py35 python=3.5
source activate py35
conda install notebook ipykernel
ipython kernel install --user --name=python3.5

Я спробував якийсь метод, але це не працює, тоді я знайшов цей спосіб. Це працювало зі мною. Сподіваючись, що це може допомогти.


працював на мене. Я використовую Mac OS 10.10.4. Я використовував ноутбук ipython з Python 2.7. У мене вже був встановлений Python 3.5. Потім я дотримувався 4 вищезгаданих процедур і успішно отримую Python3 та Python3.5 у своєму ноутбуку Юпітера.
Білл Анкалаґон чорний

Працював як шарм у Windows 10
code-assassin

'Джерело' не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма або пакетний файл.
Абдулла Саїд

1
@AbdullahSaid: Ви використовуєте Windows? Як я вже згадував, у Windows використовуйте "activate py35", а не "source activate py35". Сподіваюсь, це допомагає.
Catbuilts

13

У мене був Python 2.7 і хотів перейти на Python 3 всередині Юпітера.

Ці кроки працювали для мене в командному рядку Windows Anaconda:

conda update conda
conda create -n py33 python=3.3 anaconda
activate py33
ipython kernelspec install-self
deactivate

Тепер після відкриття ipython notebook із звичайною командою для Python2.7, Python3.3 також доступний під час створення нового ноутбука.


це найкраще рішення
adam


6

Для поточного запуску Python

Якщо у вас встановлений Py3, але py2 за замовчуванням

py -3 -m pip install ipykernel
py -3 -m ipykernel install --user

Якщо у вас встановлений Py2, але py3 за замовчуванням

py -2 -m pip install ipykernel
py -2 -m ipykernel install --user

5

У Ubuntu 14.04 мені довелося використовувати комбінацію попередніх відповідей.

Спочатку встановіть pip3 apt-get install python-pip3

Потім pip3встановіть юпітер pip3 install jupyter

Потім за допомогою ipython3установки ядра ipython3 kernel install


4

Жодна з інших відповідей не працювала для мене негайно на ElementaryOS Freya (заснована на Ubuntu 14.04); Я отримував

[TerminalIPythonApp] ПОПЕРЕДЖЕННЯ | Файл не знайдено: 'kernelspec'

помилка, що швидка помилка, описана у відповіді Метта . Я повинен був спочатку зробити:

sudo apt-get install pip3, тоді

sudo pip3 install ipython[all]

Після цього ви можете виконати команди, які запропонував Метт ; а саме: ipython kernelspec install-selfіipython3 kernelspec install-self

Тепер, коли я запускаю ipython notebookі потім відкриваю ноутбук, я можу вибрати ядро ​​Python 3 з меню Kernel.


4

Мені вдалося встановити ядро ​​Python3, окрім Python2. Ось як я це зробив:

  • відкрити новий ноутбук у Юпітері
  • скопіюйте та запустіть дві клітини тут: Enable-Python-3-ядро

Останнє робоче посилання можна знайти тут .

Фактичний код:

! mkdir -p ~/.ipython/kernels/python3
%%file ~/.ipython/kernels/python3/kernel.json

{
 "display_name": "IPython (Python 3)", 
 "language": "python", 
 "argv": [
  "python3", 
  "-c", "from IPython.kernel.zmq.kernelapp import main; main()", 
  "-f", "{connection_file}"
 ], 
 "codemirror_mode": {
  "version": 2, 
  "name": "ipython"
 }
}

1
Дякую! Це працює для мене (і для Python 3, і для Julia).
Петро Мігдал

4
Краще не ховати найважливішу частину відповіді за посиланням (вона може зникнути, і тоді відповідь стає нікчемною).
Кріс

1
Посилання знаходиться на IA: web.archive.org/web/20160319053446/http://…
bugmenot123

2
@quickbug посилання розірвано
JPCF

1
@quickbug посилання порушено! Для майбутніх відповідей переконайтеся, що ви знімаєте знімки екрана, і ваша відповідь містить все, що ви ніколи не можете покластись на зовнішні посилання
Mona Jalal


3

Найкоротше і найкраще рішення з мого боку

conda create --name py3-ml python=3.6
conda install ipykernel

source activate py3-ml # or conda activate py3-ml
python -m ipykernel install --user --name py3-ml

хочете прокоментувати свій код? що буде, якщо в цьому випадку ви вже встановили python вручну?
user2305193

3

Додавання ядра означає, що ви хочете використовувати Jupyter Notebookз версіями python, які не відображаються у списку.

Простий підхід. Запустіть ноутбук з необхідною версією python, припустимо, я python3.7встановив, а потім використовуйте команду нижче з терміналу (cmd) для запуску ноутбука:

python3.7 -m notebook

Іноді замість python3.7цього встановлюється з псевдонімом py, py3.7, python.


2

ВСТАНОВЛЕННЯ МНОГО КРУНІВ ДО ЄДИННОГО ВІРТУАЛЬНОГО ЕКОЛОГІЇ (VENV)

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

  • використовувати * NIX-апарат
  • не подобається встановлювати пакети в усьому світі
  • не хочете використовувати anaconda <-> ви раді запустити сервер юпітера з командного рядка
  • хочете мати уявлення про те, що / де встановлено ядро ​​'є'.

(Примітка. Ця відповідь додає ядро ​​python2 до встановлення python3-jupyter, але концептуально легко поміняти речі навколо.)

  1. Передумови

    1. Ви знаходитесь в режимі, з якого запускаєте сервер юпітерів і зберігаєте файли
    2. python2 встановлений на вашій машині
    3. python3 встановлений на вашій машині
    4. virtualenv встановлений на вашій машині
  2. Створіть venv python3 та встановіть jupyter

    1. Створіть свіжий venv python3: python3 -m venv .venv
    2. Активуйте вентиляцію: . .venv/bin/activate
    3. Встановити jupyterlab: pip install jupyterlab. Це створить локально всю необхідну інфраструктуру для роботи ноутбуків.
    4. Примітка. Встановлюючи тут jupyterlab, ви також генеруєте "специфікації ядра" за замовчуванням (див. Нижче) в $PWD/.venv/share/jupyter/kernels/python3/. Якщо ви хочете встановити і запустити юпітер в іншому місці, і використовувати лише цей venv для організації всіх ваших ядер, тоді вам потрібно лише:pip install ipykernel
    5. Тепер ви можете запустити лабораторію юпітера jupyter lab(і перейти до свого браузера до URL-адреси, що відображається на консолі). Поки ви побачите лише один варіант ядра під назвою "Python 3". (Ця назва визначається display_nameзаписом у вашому kernel.jsonфайлі.)
  3. Додайте ядро ​​python2

    1. Вийдіть з жуперу (або запустіть іншу оболонку в тому ж режимі): ctrl-c
    2. Деактивуйте python3 venv: deactivate
    3. Створіть новий venv в тому ж режимі для python2: virtualenv -p python2 .venv2
    4. Активуйте python2 venv: . .venv2/bin/activate
    5. Встановіть модуль ipykernel: pip install ipykernel. Це також генерує параметри ядра за замовчуванням для цього python2 venv в.venv2/share/jupyter/kernels/python2
    6. Експорт цих ядер специфікації до вашого Python3 venv: python -m ipykernel install --prefix=$PWD/.venv. Це в основному тільки копіює реж $PWD/.venv2/share/jupyter/kernels/python2до$PWD/.venv/share/jupyter/kernels/
    7. Перейдіть назад в Python3 venv і / або перезапуск / перевіряти сервер jupyter: deactivate; . .venv/bin/activate; jupyter lab. Якщо все пішло добре, ви побачитеPython 2 варіант у своєму списку ядер. Ви можете перевірити, чи працюють вони справжні інтерпретатори python2 / python3, обробляючи просту команду print 'Hellow world'vs.print('Hellow world')
    8. Примітка: вам не потрібно створювати окремий venv для python2, якщо ви раді встановити ipykernel і посилатись на специфікації python2-kernel з глобального простору, але я вважаю за краще всі мої залежності в одному локальному режимі

TL; DR

  1. Необов’язково встановити ядро ​​R. Це повчально для формування відчуття того, що таке ядро ​​'є'.
    1. З тієї ж директорії, встановіть пакет R IRkernel: R -e "install.packages('IRkernel',repos='https://cran.mtu.edu/')". (Це встановиться у вашому стандартному розташуванні R-пакетів; для домашньої завареної інстальованої R на Mac це буде виглядати приблизно так/usr/local/Cellar/r/3.5.2_2/lib/R/library/IRkernel .)
    2. Пакет IRkernel поставляється з функцією експорту її ядра специфікації, тому запустити: R -e "IRkernel::installspec(prefix=paste(getwd(),'/.venv',sep=''))". Якщо ви зараз заглянете, $PWD/.venv/share/jupyter/kernels/ви знайдете irкаталог із kernel.jsonфайлом, який виглядає приблизно так:
{
  "argv": ["/usr/local/Cellar/r/3.5.2_2/lib/R/bin/R", "--slave", "-e", "IRkernel::main()", "--args", "{connection_file}"],
  "display_name": "R",
  "language": "R"
}

kernel.jsonПідводячи підсумок, ядро ​​просто "- це виклик файлу, який шукає у режимі .../share/jupyter/kernelsdir та перераховує у своєму інтерфейсі; в цьому випадку викликається R для запуску функції IRkernel::main(), яка буде пересилати повідомлення туди-сюди на сервер Юпітера. Аналогічно, ядро ​​python2 просто 'є' викликанням інтерпретатора python2 з модулем, ipykernel_launcherяк показано на .venv/share/jupyter/kernels/python2/kernel.json, і т.д.

Ось сценарій, якщо ви хочете виконати всі ці інструкції одним махом.


Привіт Магнусе, як я можу змусити ноутбуки юпітерів використовувати ядро, яке не є типовим (наприклад, .venv3) ?? Нездатність цього зробити назавжди була шипом у моєму боці. Я хочу використовувати віртуальне ядро ​​env за замовчуванням !!
новачок

0

Ось знайдений нами метод командного рядка Windows / non, який працював для мене: Знайдіть папку, в якій зберігаються файли ядра (на моїй машині - C: \ ProgramData \ jupyter \ kernel - зауважте, що ProgramData - це прихована папка), створіть скопіюйте папку наявного ядра, змініть ім'я та відредагуйте файл json всередині, щоб вказати на каталог нового ядра. У цьому json ви також можете відредагувати ім'я ядра, яке відображається в ipython (наприклад, замість просто python 2 ви можете вказати 2.7.9, якщо вам потрібно додатково розрізнити чомусь).


0

Коли ви використовуєте conda для управління оточеннями python, виконайте наступні два кроки:

  1. activate py3(в Windows або source activate py3Linux)
  2. conda install notebook ipykernel або просто використовувати conda install jupyter

0

Я отримував таку ж помилку з python-2. Я хотів запустити сеанс ноутбука з юпітером python-2, але за замовчуванням я отримував python-3. Тому найпростіша робота - це відкритий термінал Anaconda для python-2 і введіть «jupyter notebook» , він без проблем запустить сеанс jupyter-notebook. Подібно це можна було б спробувати з python-3


-2

Я впевнений, що все, що вам потрібно зробити, - це запустити

pip3 встановити юпітер

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