Блокнот Jupyter, как выполнять команды системной оболочки в правильной среде conda? - PullRequest
0 голосов
/ 04 февраля 2019

В настоящее время я испытываю некоторые проблемы с командами jupyter ноутбука и системной оболочки.Я использую nb_conda_kernels, чтобы получить доступ ко всей моей среде conda из ноутбука Jupyter, запущенного в базовой среде, и это прекрасно работает в большинстве моих случаев использования.Для простоты предположим, что у меня есть 2 среды: базовая и одна с именем work_env.Я запускаю ноутбук jupyter в базовой среде и выбираю ядро ​​work_env при открытии ноутбука, над которым я работаю.

Сегодня я наткнулся на эту строку:

! pip install kaggle --upgrade

при выполненииВ ячейке (с правильно активированным ядром work_env) pip установил пакет kaggle в моей базовой среде.Предполагаемый результат состоял в том, чтобы установить этот пакет в моем work_env.Любые идеи о том, как заставить команды оболочки выполняться в «правильной» среде с ноутбука Jupyter?

1 Ответ

0 голосов
/ 04 февраля 2019

Попробуйте указать текущий интерпретатор Python.

import sys

!$sys.executable -m pip install kaggle --upgrade

sys.executable верните путь к интерпретатору Python, который вы в данный момент используете.Используя $, вы передаете эту переменную на свой терминал (! запускаете команду на терминале).

Псевдонимы раскрывают переменные Python так же, как системные вызовы, используя!или же !!do: все выражения с префиксом '$' расширяются.Подробнее о семантических правилах см. PEP-215

из https://ipython.org/ipython-doc/3/interactive/magics.html

-m используется для запуска библиотечного модуля (в данном случае pip) какскрипт (отметьте python -h).Запуск pip в качестве сценария гарантирует, что вы используете пип, связанный с текущим интерпретатором Python, а не тот, который указан вашими системными переменными.

Таким образом, вы уверены, что уверены, что пипустановка зависимостей на тот же интерпретатор Python, над которым вы работаете (который установлен в вашей текущей среде), это делает свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...