Подтвердить что ты не робот

Выполните Python script в ноутбуке Jupyter с помощью специального виртуального

Я хотел бы выполнить длинный Python script из Jupyter-ноутбука, чтобы я мог взломать структуры данных, созданные в середине.

script имеет множество зависимостей и аргументов командной строки и выполняется с определенным virtualenv. Можно ли интерактивно запускать Python script внутри ноутбука с указанного виртуального (отличного от установки Jupyter)?

Спасибо!

4b9b3361

Ответ 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 позволяет управлять средами прямо из ноутбука.

Изменить ядро Вы также можете выбрать ядро для запуска ноутбука, используя опцию Изменить ядро в меню Ядро.