首页 > 解决方案 > 带有 pipenv 的 Jupyter 中的 ModuleNotFoundError

问题描述

这个周末我参加了 Python 新兵训练营,但由于这个问题,我什至无法在我的计算机上使用 Python。我所有的导师也被难住了。

问题是我ModuleNotFoundError在 Jupyter 上使用了多个不同的包,包括 Pandas 和 Requests(但奇怪的是,BeautifulSoup工作CSV正常。)

以下是我如何启动一个新的 Jupyter 文件:

我正在使用 Python 3.6.5 版。

尝试解决此问题已失败:

pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
virtualenv first-python-notebook
cd first-python-notebook
cd Scripts
activate
cd ..
pip install jupyter pandas

我测试了当我在命令 shell 中使用 python 时可以导入 pandas(是的)——仍然不能在 Jupyter 上工作。

我的导师认为问题在于系统范围的软件包干扰了虚拟软件包,但我们已经工作了几个小时,无法弄清楚如何解决这个问题。

任何帮助将不胜感激。请附上详细说明,因为我是初学者。

标签: pythonjupyter-notebookjupyterpipenv

解决方案


如果您在 jupyter 中收到“ModuleNotFoundError: No module named xxyyzz”,但可以通过 pipenv shell 运行 python 来导入该模块(pipenv run python -c "import xxyyzz; print(xxyyzz.__version__)"

  • 可能是内核配置文件中没有正确设置 jupyter 的 python 路径:..\jupyter\kernels\<myProjectName>\kernel.json
  • 需要在 pipenv shell 中创建内核才能选择正确的路径

使用新的 pipenv 安装:

  1. pip install pipenv
  2. cd <project directory>
  3. export PIPENV_VENV_IN_PROJECT=1 # creates .venv in project directory
  4. pipenv --python=/path/to/python --site-packages # use python executable for your system or environment
  5. pipenv shell # work in project's virtual environment
  6. python -m ipykernel install --user --name=<myProjectName> # create jupyter kernel for project
  7. exit # exit project's virtual environment
  8. pipenv run jupyter notebook # start jupyter from project directory
  9. 在 jupyter 中,选择内核“myProjectName”

这篇文章提供了额外的解释


推荐阅读