Установите пакет Python внутри ядра Jupyter Notebook

Внутри Jupyter Notebook мне удалось установить ядро ​​​​Python с

!python -m ipykernel install --user --name other-env --display-name "Python (other-env)"

как сообщалось здесь и доступно с другими ядрами в меню Ядро → Изменить ядро ​​и

!jupyter kernelspec list

также покажет их

Available kernels:
  avenv         C:\Users\Full Name\AppData\Roaming\jupyter\kernels\avenv
  chatterbot    C:\Users\Full Name\AppData\Roaming\jupyter\kernels\chatterbot
  othervenv     C:\Users\Full Name\AppData\Roaming\jupyter\kernels\othervenv
  python3       C:\Users\Full Name\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\share\jupyter\kernels\python3

Затем я пытаюсь установить пакет Python, используя

%pip install a_package

как дано здесь что сказано

с % (вместо !) он установит a_package в текущее ядро ​​(а не в экземпляр Python, который запустил блокнот).

Но что у меня есть, так это то, что он устанавливает a_package во все ядра, или %pip list будет перечислять одни и те же установленные пакеты во всех ядрах.

Есть ли способ установить пакет Python только для активного ядра Jupyter Notebook?

🤔 А знаете ли вы, что...
Python поддерживает динамическую типизацию, что облегчает разработку.


51
2

Ответы:

Вот что я использовал, чтобы преодолеть эту проблему

import sys
!{sys.executable} -m pip install a_package

Решено

Короткий ответ

Путь к исполняемому файлу python в файле JSON ядра Jupyter должен указывать на исполняемый файл python в соответствующей виртуальной среде.

Длинный ответ

После некоторых попыток шаги можно резюмировать следующим образом.

Виртуальная среда Python

  1. Создайте виртуальную среду Python из оболочки, например. PowerShell, как в здесь, в папке (в данном случае это c:\venvs\butiran)
PS C:\> python -m venv c:\venvs\butiran
  1. Измените каталог на папку, например, в этом случае butiran в venvs (папка для всех виртуальных сред)
PS C:\> cd venvs\butiran
PS C:\venvs\butiran>
  1. Активируйте виртуальную среду как в здесь
PS C:\venvs\butiran> Scripts\activate
(butiran) PS C:\venvs\butiran>
  1. Обновление pip как в здесь
(butiran) PS C:\venvs\butiran> python -m pip install --upgrade pip
  1. Установить ipykernel как в здесь
(butiran) PS C:\venvs\butiran> pip install ipykernel
  1. Деактивируйте виртуальную среду в powershell, как в здесь
(butiran) PS C:\venvs\butiran> deactivate
PS C:\venvs\butiran>

Ядро Юпитера

  1. Установите ipykernel для Jupyter Notebook как в здесь
PS C:\venvs\butiran> python -m ipykernel install --user --name butiran --display-name "Python (butiran)"
Installed kernelspec butiran in C:\Users\Full Name\AppData\Roaming\jupyter\kernels\butiran
PS C:\venvs\butiran>
  1. Показать JSON-файл установленного ядра
PS C:\venvs\butiran> cat "C:\Users\Full Name\AppData\Roaming\jupyter\kernels\butiran\kernel.json"
{
 "argv": [
  "C:\\Users\\Full Name\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python (butiran)",
 "language": "python",
 "metadata": {
  "debugger": true
 }
}
PS C:\venvs\butiran>
  1. Изменить путь к python.exe
  • от C:\\Users\\Full Name\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\python.exe
  • в C:\\venvs\\butiran\\Scripts\\python.exe

Блокнот Юпитера

  1. Блокнот Lanuch Jupyter от PowerShell
PS C:\> jupyter notebook
  1. Откройте существующий блокнот или создайте новый.

  2. Сменить ядро ​​из меню Ядро → Сменить ядро ​​→ Python (бутиран).

  3. Установите a_package, используя только активное ядро

%pip install a_package

или с

import sys
!{sys.executable} -m pip install a_package
  1. Показать пакет глобально
!pip show a_package

дам

WARNING: Package(s) not found: a_package

пока покажите пакет в активном ядре

%pip show a_package

дам

Name: a_package
Version: ..
Summary: ..
..
Location: c:\venvs\butiran\lib\site-packages