Записная книжка Python / Jupyter в VSCode не использует правильную среду - PullRequest
2 голосов
/ 03 марта 2020

Ситуация

Я использую Anaconda 3 на Windows 10.

У меня есть рабочее пространство кода Visual Studio (my_workspace), которое содержит блокнот Jupyter (my_notebook.ipynb). VSCode имеет установленное расширение Python.

Файл my_workspace/settings.json содержит:

{
    "python.pythonPath": "C:\\Users\\Me\\Anaconda3\\envs\\my_env\\python.exe"
}

my_env - это существующая среда Anaconda. Я могу активировать его и работать с ним в оболочке, и если я запускаю jupyter lab в такой оболочке, код в записных книжках может импортировать пакеты my_env, как и ожидалось.

Если я открою my_workspace в VSCode, затем my_notebook.ipynb на вкладке, my_env также упоминается в строке состояния VSCode ("Python 3.7.6 64-bit ('my_env': conda)"), и my_env автоматически активируется, когда я открываю приглашение PowerShell в консоли VSCode (я запускал conda init один раз).

Проблема

Когда ноутбук открывается в VSCode, ядро ​​Jupyter, похоже, использует base 1046 * интерпретатор окружения вместо my_env. При импорте пакета, установленного в my_env, но не в base, я получаю эту ошибку:

>>> import keras
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'keras'

Это происходит для всех пакетов, а не только keras.

В на вкладке записной книжки в VSCode, если я нажимаю на имя переводчика в правом верхнем углу, затем выбираю правильного переводчика (тот, что в my_env), тогда записная книжка работает правильно в my_env. Но я должен делать это каждый раз, когда я снова открываю VSCode.

Как заставить ядро ​​по умолчанию соответствовать среде, выбранной в settings.json?

1 Ответ

1 голос
/ 03 марта 2020

Я думаю, что сейчас нет параметра для управления этим в settings.json. У меня были похожие проблемы со средами, в которых был запущен ноутбук, и я смог это исправить, изменив раздел kernelspec в ноутбуке I Python.

По сути, откройте записную книжку как файл JSON и удалите раздел kernelspec. Когда записная книжка запускается из vscode, эта часть будет заполнена ядром среды python по умолчанию для рабочей области. В моем случае это среда pipenv.

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