Використання як Python 2.x, так і Python 3.x у IPython Notebook


255

Я використовую ноутбуки IPython і хотів би мати можливість вибрати для створення ноутбука 2.x або 3.x python в IPython.

У мене спочатку була Анаконда. Завдяки Anaconda глобальну змінну середовища потрібно було змінити, щоб вибрати, яку версію python ви хочете, а потім IPython можна було запустити. Це не те, що я шукав, тому я видалив Anaconda і тепер створив власну установку за допомогою MacPorts та PiP. Здається, що мені все-таки доведеться користуватися

port select --set python <python version> 

для перемикання між python 2.x та 3.x. що не краще, ніж розчин анаконда.

Чи є спосіб вибрати версію python, яку ви хочете використовувати після запуску ноутбука IPython, бажано з моєї поточної збірки MacPorts?


Відповіді:


336

Ідея тут - встановити кілька ipythonядер. Ось інструкція щодо анаконди. Якщо ви не використовуєте анаконду, я нещодавно додав інструкції з використанням чистих virtualenvs.

Анаконда> = 4.1.0

Починаючи з версії 4.1.0, анаконда включає спеціальний пакет, nb_conda_kernelsякий виявляє середовища конди за допомогою ядер ноутбука та автоматично реєструє їх. Це робить використання нової версії python таким же простим, як і створення нових середовищ conda:

conda create -n py27 python=2.7 ipykernel
conda create -n py36 python=3.6 ipykernel

Після перезавантаження ноутбука з юпітером нові ядра доступні через графічний інтерфейс. Зверніть увагу, що нові пакети повинні бути явно встановлені в нових середовищах. У розділі Керування середовищами в документах Conda надається додаткова інформація.

Реєстрація ядер вручну

Користувачі, які не хочуть використовувати nb_conda_kernelsабо все ще використовують старіші версії анаконди, можуть скористатися наступними кроками, щоб вручну зареєструвати ядра ipython.

налаштування python2.7середовища:

conda create -n py27 python=2.7
conda activate py27
conda install notebook ipykernel
ipython kernel install --user

налаштування python3.6середовища:

conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user

Після цього ви маєте змогу вибирати між інтерфейсом python2
та python3при створенні нового ноутбука в інтерфейсі.

Крім того, ви можете передати --nameі --display-nameпараметри, ipython kernel installякщо ви хочете змінити імена ваших ядер. Додаткову ipython kernel install --helpінформацію див.


Ваше рішення дуже схоже на рішення, яке я закінчив, і в принципі я би очікував, що він спрацює. Оскільки я вже видалив анаконду і отримав цю роботу, я не зможу перевірити.
дельтап

9
Якщо ви хочете встановити kernelspecs, не вимагаючи root, ви можете зробити ipython kernelspec install-self --userїх установку для поточного користувача.
Томас К

1
Я це зрозумів! Ваша відповідь допомогла! dropbox.com/s/6ayqf55ctkv2xgk/…
Розумний програміст

7
Ключовим елементом є те, що ви повинні ВСТАНОВИТИ nb_conda_kernels, оскільки він не поставляється з моєю початковою Anaconda! Дякую!
дартдог

1
@cel, дійсно, середовище, з якого я запускаю юпітер, не містить пакет nb_conda_kernels, встановлений за замовчуванням. Я не знайшов часу, щоб прочитати всі коментарі: можливо, ви могли б відредагувати свою відповідь і включити ремейк дартдога.
Антуан Готьє

276

Якщо ви працюєте з Jupyter на Python 3, ви можете встановити ядро ​​Python 2 таким чином:

python2 -m pip install ipykernel

python2 -m ipykernel install --user

http://ipython.readthedocs.io/en/stable/install/kernel_install.html


52
Перемкніть "2" на "3", якщо у вас вже встановлено python2 і вам потрібен python3. Я не розумію, чому це не найкраща відповідь, вона, безумовно, перемагає бритвою Оккама, і це працювало на мене.
слова для того

6
Працює чудово. Справді має бути перша відповідь.
JSmyth

2
Команда python2 включена в сам python? Будь ласка, дайте детальне пояснення цієї відповіді. :)
verystrongjoe

3
це працює, але він не пов'язаний з моєю системною python 2 додатковими пакетами. Чи є спосіб пов’язати існуючий бінарний / виконуваний файл python?
Rutger Hofste

1
Відмінно працює в win10, просто замініть python2на your\path\to\python(2).exe.
Люсьєн

42

Ці інструкції пояснюють, як встановити ядро ​​python2 та python3 в окремих віртуальних середовищах для користувачів, які не мають анаконди. Якщо ви використовуєте анаконду, знайдіть іншу мою відповідь на рішення, безпосередньо з урахуванням анаконди.

Я припускаю, що ви вже jupyter notebookвстановили.


Спочатку переконайтеся, що у вас є python2і python3перекладачpip наявними.

На ubuntu ви встановите їх:

sudo apt-get install python-dev python3-dev python-pip python3-pip

Далі підготуйте та зареєструйте середовища ядра

python -m pip install virtualenv --user

# configure python2 kernel
python -m virtualenv -p python2 ~/py2_kernel
source ~/py2_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py2 --user
deactivate

# configure python3 kernel
python -m virtualenv -p python3 ~/py3_kernel
source ~/py3_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py3 --user
deactivate

Щоб зробити це простішим, ви можете додати псевдоніми оболонки для команди активації у свій конфігураційний файл оболонки. Залежно від системи та оболонки, яку ви використовуєте, це може бути, наприклад ~/.bashrc, ~/.bash_profileабо~/.zshrc

alias kernel2='source ~/py2_kernel/bin/activate'
alias kernel3='source ~/py3_kernel/bin/activate'

Після перезавантаження оболонки тепер ви можете встановлювати нові пакети після активації середовища, яке ви хочете використовувати.

kernel2
python -m pip install <pkg-name>
deactivate

або

kernel3
python -m pip install <pkg-name>
deactivate

слідували за цим пунктом, встановили панди, запустили юпітер, перейшли на ядро ​​py3: імпорт панд не вдався з помилкою "не знайдено". Це
заводить

1
@ user1255933, ймовірно, це пов’язано з установкою з неправильною версією pip. Це може статися, якщо активація цільового середовища не вдалася або вона не містить версії pip. Ви можете знайти моя відповідь тут цікаво: stackoverflow.com/questions/32680081 / ... .
віск

Дякуємо вам за інструкцію щодо використання
неанакондового

37

З поточною версією Notebook / Jupyter ви можете створити ядро Python3 . Після запуску нового додатка для ноутбука з командного рядка з Python 2 ви побачите запис „Python 3“ у випадаючому меню „New“. Це дає вам ноутбук, який використовує Python 3. Отже, ви можете мати два ноутбуки поруч із різними версіями Python.

Деталі

  1. Створіть цей каталог: mkdir -p ~/.ipython/kernels/python3
  2. Створіть цей файл ~/.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"
        }
    }
  3. Перезавантажте сервер ноутбуків.

  4. Виберіть „Python 3“ зі спадного меню „New“
  5. Робота з зошитом Python 3
  6. Виберіть „Python 2“ зі спадного меню „New“
  7. Робота з зошитом Python 2

Це чудово, і я намагаюся працювати так, але ви могли б вказати, як ви починаєте jupyterв цьому сценарії (мені або потрібно запустити ipython notebookабо ipython3 notebook). Зараз я можу запускати лише одне або інше (з відповідним оточенням, але я бачу, що обидва ядра вказані всередині jupyter. Чи можете ви, можливо, розширити свою відповідь, щоб включити як запустити, jupyterщоб я міг запускатись python2і python3поруч? Дякую!
Кріс

1
Гаразд, я думаю, я це зрозумів - мені довелося відрегулювати kernel.jsonфайл всередині ~/Library/Jupyter/kernels/python3/(в OS X) і додати аргументи, згадані у пов'язаному файлі.
Кріс

@Chris Так, хоча опис за посиланням подано в зошиті IPython, це можна зробити в редакторі. Просто створіть або модифікуйте файл із певним іменем у заданому шляху та на показаному вмісті. Радий, що ти вирішив свою проблему.
Майк Мюллер

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

1
@Chris Додав деталі за посиланням.
Майк Мюллер

22

Наявне рішення, яке дозволяє мені тримати інсталяцію MacPorts, налаштовуючи ядро ​​Ipython.

Вимоги:

  • MacPorts встановлюється у звичайній / opt довідник
  • python 2.7 встановлюється через макпорти
  • python 3.4 встановлюється через макпорти
  • Ipython встановлюється для python 2.7
  • Ipython встановлений для python 3.4

Для python 2.x:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
$ sudo ./ipython kernelspec install-self

Для python 3.x:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
$ sudo ./ipython kernelspec install-self

Тепер ви можете відкрити ноутбук Ipython, а потім вибрати ноутбук python 2.x або python 3.x.

Виберіть свій пітон!


Чи можете ви підтвердити, що ви можете запускати python2та керувати python3ноутбуками ядра поруч в одному jupyterекземплярі? У цьому випадку як саме ви починаєте jupyterне мати конфліктуючих шляхів? На даний момент я можу лише запускати python2або python3кодувати, попередньо встановивши відповідне $PATH $PYTHONPATHсередовище. Чи можу я якось уникнути цього?
Кріс

Я можу запускати ноутбуки ядра python2 або python3.
дельтап

Як почати jupyter(враховуючи, що він встановлений для python 2.7і для python 3.4) Ви визначили $ PYTHONPATH або знайшли якесь віртуальне середовище? Ти просто дзвониш ipython notebook? Якщо так, то що ipythonце стосується - встановленого для 2.7 або 3.4?
Кріс

Я просто дзвоню python notebook. which ipythonпоказує, що вона вказує на/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/ipython
дельтап

Добре, я з'ясував свою проблему, і це було пов'язано із заздалегідь визначеним $PYTHONPATH, що ускладнює переключення ядер. Мені довелося до unset PYTHONPATHзапуску ipythonі зараз це працює.
Кріс

18

З моєї установки Linux я зробив:

sudo ipython2 kernelspec install-self

І тепер мій пітон 2 знову в списку.

Довідка:

http://ipython.readthedocs.org/en/latest/install/kernel_install.html


ОНОВЛЕННЯ:

Наведений вище метод тепер застарілий і його в майбутньому буде відмінено. Новим методом має бути:

sudo ipython2 kernel install


2
Я ненавиджу випадкове вставлення команд у свою установку Ubuntu, але це все спрацювало для мене.
Йосиф

1
Чи повинна бути обрана відповідь.
e9t

1
Коротко та суть, я застосував це рішення на Mac OS X, працює без проблем.
Конрад

1
Я спробував усі відповіді. Але це працювало для мене. Спробуйте, якщо ви перебуваєте на ubuntu.
sinsuren

1
І де я дістаюсь ipython2?
судо

5

Далі наведено кроки, щоб додати ядро ​​python2 до ноутбука юпітера ::

відкрити термінал і створити нове середовище python 2: conda create -n py27 python=2.7

активувати середовище: Linux source activate py27або Windowsactivate py27

встановити ядро ​​в env: conda install notebook ipykernel

встановіть ядро ​​для зовнішньої програми: ipython kernel install --user

закрити оточення: source deactivate

Хоча пізня відповідь сподіваюся, що хтось вважає це корисним: с


Це не додає нічого, крім того, що вже було чітко сказано у відповіді @ cel .
мерв

3

Використовуйте sudo pip3 install jupyterдля установки jupyter для python3 та sudo pip install jupyterдля встановлення ноутбука jupyter для python2. Потім ви можете зателефонувати ipython kernel installкоманді, щоб увімкнути обидва типи ноутбука на вибір у зошиті юпітера.


1

Я подивився на цю чудову інформацію, а потім дивувався , оскільки

  1. у мене встановлені python2, python3 та IPython,
  2. у мене встановлений PyCharm,
  3. PyCharm використовує IPython для своєї консолі Python,

якщо PyCharm буде використовувати

  1. IPython-py2, коли Меню> Файл> Налаштування> Проект> Інтерпретатор проекту == py2 ТА
  2. IPython-py3, коли Меню> Файл> Налаштування> Проект> Інтерпретатор проекту == py3

ВІДПОВІДЬ: Так!

PS У мене також встановлений Python Launcher для Windows.


0

У Windows 7 у мене були встановлені анаконда та anaconda3. Я зайшов \Users\me\anaconda\Scriptsі стратив

sudo .\ipython kernelspec install-self

потім я зайшов \Users\me\anaconda3\Scriptsі стратив

sudo .\ipython kernel install

(Я отримав jupyter kernelspec install-self is DEPRECATED as of 4.0. You probably want 'ipython kernel install' to install the IPython kernelspec. )

Після запуску jupyter notebook(в anaconda3) у верхньому правому куті під "Новим" я отримав акуратне меню, що дозволяє вибирати ядра Python 2 odr Python 3.


0
  • Якщо ви запускаєте анаконду у віртуальному середовищі.
  • І коли ви створюєте новий ноутбук, але я не показую, щоб вибрати ядро ​​віртуального середовища.
  • Потім ви повинні встановити його в ipykernel, використовуючи наступну команду
$ pip install --user ipykernel
$ python -m ipykernel install --user --name=test2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.