Невозможно импортировать модули в ноутбук jupyter; неправильный sys.path
У меня проблема с импортированием модулей в моем ноутбуке iPython/Jupyter. Проблема в основном заключается в том, на что указывает sys.path.
Из ноутбука iPython/Jupyter sys.executable
возвращает:
'/usr/bin/python'
Однако из командной строки он возвращает:
'//anaconda/bin/python'
Я попытался удалить и повторно установить anacondas, но проблема все еще остается.
Я также попытался увеличить $PYTHONPATH в моем bash_profile, чтобы включить //anaconda/bin/python, но это не разрешает его.
Есть ли способ изменить sys.path в моем ноутбуке jupyter навсегда, без простого использования sys.path.append(...)?
Ответы
Ответ 1
-
Откройте новое окно терминала и посмотрите, поможет ли это. Если нет, перейдите к 2.
-
Запустите стандартный сеанс Python с терминала и введите следующее:
>>> import sys
>>> sys.executable
-
Сделайте то же самое в записной книжке:
In [1]: import sys
sys.executable
-
Сравните результаты. Надеюсь, это даст вам понять, что происходит.
Ответ 2
Я была такая же проблема. Пройдя через многие (например, слишком многие) решения этой проблемы, найденные в других местах, мне удается найти решение, которое, по крайней мере, работает в моем случае.
Шаг 1: проверьте правильный путь к исполняемой среде анаконды.
Перейдите в командную строку, активируйте проблемную среду conda и проверьте правильный путь к исполняемому файлу для среды.
conda activate {envronment name};
затем на консоли Python,
(>>>) import sys;sys.executable
Например, в Linux это будет
/media/{username}/{path-to}/anaconda3/envs/{environment name}/bin/python
Шаг 2: исправьте путь к исполняемому файлу для сеансов jupyter.
В командной строке проверьте путь, по которому находится kernel.json
вашей проблемной среды conda.
jupyter kernelspec list
Например, в Linux это будет: /home/{username}/.local/share/jupyter/kernels/{environment name}
Откройте kernel.json
, расположенный в этой папке, и замените неверный путь к исполняемому файлу, как показано ниже.
{
"argv": [
"REPLACE-THIS-WITH-THE-CORRECT-EXECUTABLE-PATH",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "heterodimers",
"language": "python"
}
Надеюсь, это работает и в вашем случае.