Выполните Python script в ноутбуке Jupyter с помощью специального виртуального
Я хотел бы выполнить длинный Python script из Jupyter-ноутбука, чтобы я мог взломать структуры данных, созданные в середине.
script имеет множество зависимостей и аргументов командной строки и выполняется с определенным virtualenv. Можно ли интерактивно запускать Python script внутри ноутбука с указанного виртуального (отличного от установки Jupyter)?
Спасибо!
Ответы
Ответ 1
Вот что сработало для меня (не conda
Python):
(MacOS, brew версия python. Если вы работаете с системным python, вам может потребоваться (потребуется) добавить каждую команду с помощью sudo
)
сначала активируйте virtualenv
если начать заново, например, вы можете использовать virtualenvwrapper
$pip install virtualenvwrapper
$mkvirtualenv -p python2 py2env
$workon py2env
# This will activate virtualenv
(py2env)$
# Then install jupyter within the active virtualenv
(py2env)$ pip install jupyter
# jupyter comes with ipykernel, but somehow you manage to get an error due to ipykernel, then for reference ipykernel package can be installed using:
(py2env)$ pip install ipykernel
Далее настройте ядро
(py2env)$ python -m ipykernel install --user --name py2env --display-name "Python2 (py2env)"
затем запустите блокнот jupyter (для этого шага не нужно активировать venv)
(py2env)$ jupyter notebook
# or
#$ jupyter notebook
в раскрывающемся меню ноутбука Jupyter: Kernel >> Change Kernel >> <list of kernels>
вы должны увидеть ядро Python2 (py2env)
Это также позволяет легко идентифицировать Python-версию ядра и поддерживать обе стороны рядом.
вот ссылка на подробную документациюhttp://ipython.readthedocs.io/en/stable/install/kernel_install.html
Ответ 2
Немного более простое решение для получения ядер ноутбуков, доступных в других ноутбуках.
Я использую Linux + virtualenv + virtualenvwrapper. Если вы используете другую настройку, измените некоторые команды на соответствующие, но вы должны получить эту идею.
mkvirtualenv jupyter2
workon jupyter2
(jupyter2) pip install jupyter
(jupyter2) ipython kernel install --name "jupyter2_Python_2" --user
Последняя команда создает каталог ~/.local/share/jupyter/kernels/jupyter2\ python\ 2/
тот же материал для 3
mkvirtualenv -p /usr/bin/python3 jupyter3
// this uses python3 as default python in virtualenv
workon jupyter3
(jupyter3) pip install jupyter
(jupyter3) ipython kernel install --name "jupyter3_Python_3" --user
Когда закончите, вы должны увидеть оба ядра, независимо от того, что вы используете для запуска jupyter.
Вы можете удалить ссылки на ядра непосредственно в ~/.local/share/jupyter/kernels/
.
Чтобы указать местоположение, укажите параметры ipython kernel install (--help)
или просто скопируйте каталоги от ~/.local/share/jupyter/kernels/
до ~/envs/jupyter3/share/jupyter
, если вы хотите запускать несколько кереней только с одного ноутбука.
Ответ 3
Я нашел эту ссылку очень полезной:
https://ocefpaf.github.io/python4oceanographers/blog/2014/09/01/ipython_kernel/
Убедитесь, что вы устанавливаете jupyter в свой virtualenv. В случае, если ссылка уйдет позже, вот суть:
Вам нужно создать новое ядро. Вы указываете свое ядро с файлом JSON. Обычно ваши ядра расположены в ~/.ipython/kernels
. Создайте каталог с именем вашего virtualenv и создайте в нем файл kernel.json. Например, один из моих путей выглядит как ~./ipython/kernels/datamanip/kernel.json
Вот что выглядит мой файл kernel.json:
{
"display_name": "Data Manipulation (Python2)",
"language": "python",
"codemirror_mode": {
"version": 3,
"name":"ipython"
},
"argv": [
"/Users/ed/.virtualenvs/datamanip/bin/python",
"-c",
"from IPython.kernel.zmq.kernelapp import main; main()",
"-f",
"{connection_file}"
]
}
Я точно не знаю, что делает объект codemirror_mode, но он, похоже, не наносит вреда.
Ответ 4
Это действительно просто, на основе документации
Вы можете использовать virtualenv для своего IPython-ноутбука. Выполните следующие шаги, на самом деле нет необходимости в первом шаге, просто убедитесь, что вы активировали свой virtualenv через source ~/path-to-your-virtualenv/
-
Установите модуль ядра ipython в свой virtualenv
workon my-virtualenv-name # активировать ваш virtualenv, если вы еще этого не сделали
pip install ipykernel
-
(Самый важный шаг) Теперь запустите ядро "самостоятельно установить" script:
python -m ipykernel install --user --name = my-virtualenv-name
При необходимости замените параметр -name.
-
Теперь вы можете увидеть свое ядро в меню ноутбука IPython: Kernel -> Change kernel
и иметь возможность переключиться на него (возможно, вам придется обновить страницу до ее появления в списке). IPython запомнит, какое ядро использовать для этого ноутбука с этого момента.
Ответ 5
Решение @singer мне не помогло. Вот что сработало:
. /path/to/virtualenv/.venv/bin/activate
python -m ipykernel install --user --name .venv --display-name .venv
Справка: Ядра для разных сред (официальные документы)
Ответ 6
nb_canda полезен:
conda install nb_conda
Таким образом, вы можете создавать и выбирать собственное ядро Python в виртуальной среде Conda, а также управлять пакетами в Venv.
Скриншоты
Элемент списка
![Screenshot]()
Диспетчер среды conda Вкладка Conda в ноутбуке jupyter позволяет управлять средами прямо из ноутбука.
Изменить ядро Вы также можете выбрать ядро для запуска ноутбука, используя опцию Изменить ядро в меню Ядро.