Как добавить ядро ​​python3 в jupyter (IPython)


322

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


python2ваше ядро ​​по умолчанию. Поскольку вы установили ipython в python2интерпретатор, вы также получаете python2ядро по умолчанию. Если вы вместо этого установили в a python3.x, у вас будет по умолчанию python3ядро.
чел

Я нашел этот блог очень полезным: datapoly.org/2018/06/18/…
Ку

Ответы:


296

Это работало для меня на 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. Даже работал в среде conda!
Оса

Работал на убанту 16.04, просто обнови страницу своего блокнота. Спасибо!
Кетанкк

1
я попробовал это, но 3-я и 4-я команды не работали, поэтому мне пришлось установить pip3 и запустить их как python3 -m pip install ipykernel python3 -m ipykernel install --user
Мерт Кугачи

Отлично работал на Mac Mojave
mleafer

228

Убедитесь, что вы ipykernelустановили и используете ipython kernel installдля удаления спецификации ядра в правильном месте для 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, но логика для этого не запечена. Вам нужно продублировать спецификацию ядра и явно сослаться на двоичный файл python.
Мэтт

2
Спасибо, это сработало и для меня на Anaconda - запустите ipython kernelspec install-selfзатем активируйте Python3 с помощью source activate python3той же командыipython kernelspec install-self
Колин Гравилл

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нормально.
Teque5

125
  1. Получил ноутбук ipython с Python2 (на Windows7)
  2. обновить до Jupyter с 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не рекомендуется.
Амбоди

Что вы делаете PYTHONPATHна каждом из вышеперечисленных шагов?
user3226167


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, который вы хотите добавить, и указав на питон, который запускает ваш юпитер:

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


получил downvote без комментариев ... было бы интересно узнать, когда это не работает!
Стефано

2
Отличный ответ. Я столкнулся с этой проблемой в течение недели, и я не мог найти решение. Я должен был посмотреть на ваше решение ранее;)
DucCuong

5
Не работает для меня на моей Mac OS x ver 10.13.5. Python3 устанавливается с помощью brew, а jupyter - с pip3. Он предлагает только ядро ​​python2. Кажется, что установка kernelspec <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

Если вы используете дистрибутив anaconda, это работает для меня (на компьютере 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 / Users / admin / Library / Jupyter / kernels / python3 python2 / anaconda2 / share / jupyter / kernels / python2


1
У меня работает на Ubuntu 18.04
akarve

Работает на моей машине Windows 7, а также.
Кристиан К.

Работает на своей машине windows 10 также.
Suisse

Работает также на High Sierra 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 для окна), затем выполните следующие команды: (В окне удалите «source» во второй строке.)

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 в своем блокноте Jupyter.
Билл Анкалагон черный

Работал как шарм на windows 10
code-assassin

«источник» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
Абдулла Саид

1
@AbdullahSaid: Вы используете Windows? Как я уже упоминал, в Windows используйте «activ py35» вместо «source activ py35». Надеюсь это поможет.
Catbuilts

13

У меня был Python 2.7, и я хотел иметь возможность переключиться на Python 3 внутри Jupyter.

Эти шаги работали для меня в командной строке Windows Anaconda:

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

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


это лучшее решение
Адам


6

Для текущего Python Launcher

Если у вас установлен 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установкой Jupyter pip3 install jupyter

Затем с помощью ipython3установки ядра ipython3 kernel install


4

Ни один из других ответов не работал для меня сразу на ElementaryOS Freya (на основе Ubuntu 14.04); Я получал

[TerminalIPythonApp] ВНИМАНИЕ | Файл не найден: 'kernelspec'

ошибка, которую описал quickbug под ответом Мэтта . Я должен был сначала сделать:

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. Вот как я это сделал:

  • открыть новый блокнот в Jupyter
  • скопируйте и запустите две ячейки здесь: Enable-Python-3-kernel

Последнюю рабочую ссылку можно найти здесь .

Фактический код:

! 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 и Джулия).
Петр Мигдаль

4
Лучше всего не скрывать самую важную часть ответа за ссылкой (она может исчезнуть, и тогда ответ станет бесполезным).
Крис


2
@quickbug ссылка не работает
JPCF

1
@ Quickbug ссылка не работает! Для будущих ответов убедитесь, что вы делаете скриншоты, и ваш ответ содержит все это, потому что вы никогда не можете полагаться на внешние ссылки
Мона Джалал


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 <-> вы счастливы запустить сервер jupyter из командной строки
  • хотите иметь представление о том, что / где находится установка ядра.

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

  1. Предпосылки

    1. Вы находитесь в директории, из которой вы будете запускать сервер jupyter и сохранять файлы
    2. Python2 установлен на вашей машине
    3. Python3 установлен на вашей машине
    4. virtualenv установлен на вашей машине
  2. Создайте python3 venv и установите jupyter

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

    1. Закройте jupyter (или запустите другую оболочку в том же каталоге): 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 из глобального пространства, но я предпочитаю хранить все мои зависимости в одном локальном каталоге

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файла для конкретного языка из файла, который jupyter ищет в каталоге .../share/jupyter/kernelsи перечисляет в своем интерфейсе; в этом случае вызывается R для запуска функции IRkernel::main(), которая будет отправлять сообщения туда и обратно на сервер Юпитера. Аналогично, ядро ​​python2 просто «является» вызовом интерпретатора python2 с модулем, ipykernel_launcherкак видно из.venv/share/jupyter/kernels/python2/kernel.json , и т. Д.

Вот скрипт, если вы хотите выполнить все эти инструкции одним махом.


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

0

Вот метод Windows / non-line, который я нашел и который работал для меня: найдите папку, в которой хранятся файлы ядра (на моем компьютере - C: \ ProgramData \ jupyter \ kernels - обратите внимание, что ProgramData - это скрытая папка), создайте скопируйте папку существующего ядра, измените имя и отредактируйте файл json, чтобы он указывал на каталог нового ядра. В этом json вы также можете редактировать имя ядра, отображаемое в ipython (например, вместо просто python 2 вы можете указать 2.7.9, если вам нужно по каким-то причинам дополнительно различать).


0

Когда вы используете conda для управления средами Python, выполните следующие два шага:

  1. activate py3(в Windows или source activate py3в Linux)
  2. conda install notebook ipykernel или просто использовать conda install jupyter

0

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.