#python #jupyter-notebook #virtualenv
#python #jupyter-ноутбук #virtualenv
Вопрос:
Я работаю с ноутбуками Jupyter и несколькими виртуальными компьютерами в Ubuntu 18.04 (я не использую Conda).
Обычно я создаю новый virtualenv для каждого нового проекта python, над которым я работаю, и, поскольку я работаю над многими проектами, я хотел бы избежать создания нескольких ядер Jupyter, как предлагается здесь.
Вместо этого я хотел бы сказать Jupyter запускать ядра python в virtualenv, в котором я запускаю его ПО УМОЛЧАНИЮ.
Я знаю, что это возможно, поскольку раньше это работало именно так, но тогда я не знаю, что я сделал не так, и теперь, если я не создам ядро для каждого virtualenv, Jupyter не позволит мне использовать модули python, которые я установил в этой среде.
Раньше это работало следующим образом:
- Я активирую virtualenv
source bin/активировать
- Я установил Jupyter в этом virtualenv
- Я запустил Jupyter в этом virtualenv
записная книжка jupyter
- Я выбрал Python3 / 2, ядро R в зависимости от того, что мне было нужно
- Я мог бы импортировать все модули, установленные в этом virtualenv
Теперь он больше не работает, и если я попытаюсь импортировать модуль, установленный в этом virtualenv, он выдает следующую ошибку:
Ошибка ModuleNotFoundError: нет модуля с именем ‘modulename’
Даже если я проверил, что записная книжка Jupyter ищет правильные пути:
! which python
/home/user/venv_name/bin/python
и
! which pip
/home/user/venv_name/bin/pip
Как я могу вернуть старую настройку?
Комментарии:
1. Можете ли вы попробовать
import sys; sys.path
как в интерпретаторе python, так и в ячейке jupyter и посмотреть, есть ли разница? Если это так, обходным путем является добавление путей в начале записной книжки. Тем не менее, я ищу лучшее решение самостоятельно.