Есть ли какой-либо способ использовать jupyter notebook для запуска разных версий python в одном и том же ноутбуке?

#python #jupyter-notebook #jupyter #environment

Вопрос:

Я добавил среду conda в свой блокнот Jupyter, но версия Python по-прежнему 3.8 (рис. 1). Что я хотел бы сделать, так это создать среду, содержащую Python версии 3.7 в ноутбуке Jupyter, без запуска из командной строки и запуска двух отдельных ноутбуков Jupyter (рис. 2). Возможно ли иметь просто один ноутбук jupyter с двумя отдельными средами и двумя разными версиями Python?

Рис. 1

введите описание изображения здесь

Рис. 2

введите описание изображения здесь

Комментарии:

1. Я думаю, что немного больше контекста о том, зачем нужна эта функциональность, было бы полезно для понимания того, действительно ли ваша проблема является проблемой XY. Не могли бы вы подробнее рассказать о том, что порождает это требование?

2. @esqew Да, у меня две разные работы. Один использовал пакеты, связанные с Pyhon 3.7, а другой использовал пакеты, связанные с Python 3.8. С тех пор я новичок в Python и начинаю использовать ноутбук jupyter для запуска Python. Раньше я использовал Googlecolab, но это не могло относиться ко всей работе, которая у меня есть.

3. @tassaneel для тебя хорошо, что это работает. Но вам следует просто понизить один из ваших пакетов до такой степени, чтобы оба поддерживали одну и ту же версию python. Это также хорошо для производства.

4. Это более точно отвечает на мой вопрос. : ссылка .

Ответ №1:

Пожалуйста, прочитайте эту страницу документов для ipykernel.

В вашей среде вы хотите установить только ipykernel (не полный Jupyter) и использовать одну из ipykernel install --name команд для регистрации ядер в Jupyter.

Если это не работает, используйте jupyter kernelspec list , чтобы увидеть, какие ядра видит jupyter и где. Спецификация ядра-это, как минимум kernel.json , файл в нужном месте, чтобы сообщить jupyter, как найти ядра.

Например, у меня есть следующее

 $ cat ~/miniconda3/share/jupyter/kernels/python3/kernel.json
{
 "argv": [
  "~/miniconda3/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3 (ipykernel)",
 "language": "python",
 "metadata": {
  "debugger": true
 }
}
 

Я могу использовать приведенную выше документацию или создать следующее вручную:

 $ cat ~/miniconda3/share/jupyter/kernels/python3.6/kernel.json
{
 "argv": [
  "~/miniconda3/envs/mypython36env/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3.6 !!",
 "language": "python",
 "metadata": {
  "debugger": true
 }
}
 

и если предположить, что у меня есть соответствующий Python 3.6 env, то я получу два ядра, одно из которых-Python 3.6