ModuleNotFoundError в Jupyter с pipenv
В эти выходные я нахожусь в загрузочном лагере Python, но из-за этой проблемы я даже не смог использовать Python на своем компьютере. Все мои инструкторы тоже в тупик.
Проблема в том, что я получаю ModuleNotFoundError на Jupyter с несколькими различными пакетами, включая Pandas и Requests (но, как ни странно, BeautifulSoup и CSV работают нормально.)
Вот как я начинаю новый файл Jupyter:
-Создайте новый каталог -Установите jupyter и pandas с помощью этой команды: pipenv install jupyter pandas -Активируйте виртуальную среду: оболочка pipenv -Запустите Jupyter: jupyter notebook -Создайте новый блокнот Python 3 -В данный момент я пробую команду типа "import pandas" как pd "и получить обратно ModuleNotFoundError.
Я использую Python версии 3.6.5.
Попытки исправить это, которые потерпели неудачу: -двойно проверили, что pandas установлена в моей виртуальной среде с помощью pip graph -создана совершенно новая директория pipenv install jupyter pandas --skip-lock -Установить все в системе с помощью следующих команд: pip freeze > needs.txt pip uninstall -r needs.txt -y -Обновленные панды -Используется virtualenv вместо pipenv virtualenv first-python-notebook cd first-python-notebook CD Сценарии активируют cd .. pip install jupyter pandas Я протестировал, что панды можно импортировать когда я использовал python в командной оболочке (да) - все еще не работал на Jupyter.
Мой преподаватель считает, что проблема заключается в том, что общесистемные пакеты мешают виртуальным, но мы работаем часами и не можем понять, как это исправить.
Любая помощь будет принята с благодарностью. Пожалуйста, включите подробные инструкции, как я начинающий.
2 ответа
Спасибо за совет. Тем не менее, мне посоветовали не устанавливать Anaconda - не могу вспомнить причину, но я думаю, что это потому, что, если я когда-нибудь решу, что хочу использовать что-то другое, переключиться будет настоящей головной болью. Я рад услышать ваши аргументы, если вы с этим не согласны.
Я решил проблему, удалив каждый пакет как в виртуальной среде, так и в более крупной компьютерной системе, а затем переустановил его в обоих местах. Это сработало, но я немного сбит с толку относительно смысла виртуальной среды, если мне все равно пришлось установить все дважды.
Если вы получаете сообщение "ModuleNotFoundError: Нет модуля с именем xxyyzz" в jupyter, но модуль можно импортировать, запустив python через оболочку pipenv (pipenv run python -c "import xxyyzz; print(xxyyzz.__version__)"
:
- вероятно, путь jupyter python неправильно установлен в файле конфигурации ядра:
..\jupyter\kernels\<myProjectName>\kernel.json
- ядро должно быть создано в оболочке pipenv, чтобы выбрать правильный путь
При новой установке pipenv:
pip install pipenv
cd <project directory>
export PIPENV_VENV_IN_PROJECT=1 # creates .venv in project directory
pipenv --python=/path/to/python --site-packages # use python executable for your system or environment
pipenv shell # work in project's virtual environment
python -m ipykernel install --user --name=<myProjectName> # create jupyter kernel for project
exit # exit project's virtual environment
pipenv run jupyter notebook # start jupyter from project directory
- в jupyter выберите ядро "myProjectName"
Почему бы вам не попробовать установить ipykernel с виртуальной средой Anaconda? С ним будет легче обращаться.
Если вы ранее не использовали Anaconda, просто перейдите на официальный веб-сайт https://www.anaconda.com/download/ и загрузите новейшую версию для вашей ОС. Затем выполните следующие действия.
- Выполните подсказку Анаконды.
- Введите 'conda create -y -n $ENVIRONMENT_NAME ipykernel'
- Введите 'conda activ $ENVIRONMENT_NAME'
- Введите 'conda install -y $PACKAGES_TO_BE_INSTALLED'
- Введите 'python -m ipykernel install --user --name $NAME --display-name $IPYKERNEL_NAME'
Это имя ipykernel будет представлено в вашем списке ядер в блокноте jupyter. Вы можете узнать список установленных ядер, набрав jupyter kernelspec list
,
Надеюсь это поможет!