python - 带有 pipenv 的 Jupyter 中的 ModuleNotFoundError
问题描述
这个周末我参加了 Python 新兵训练营,但由于这个问题,我什至无法在我的计算机上使用 Python。我所有的导师也被难住了。
问题是我ModuleNotFoundError
在 Jupyter 上使用了多个不同的包,包括 Pandas 和 Requests(但奇怪的是,BeautifulSoup
工作CSV
正常。)
以下是我如何启动一个新的 Jupyter 文件:
- 创建一个新目录
- 使用以下命令安装 jupyter 和 pandas: pipenv install jupyter pandas
- 激活虚拟环境:pipenv shell
- 启动 Jupyter:jupyter notebook
- 创建新的 Python 3 笔记本
- 此时,我尝试了类似的命令
import pandas as pd
并取回ModuleNotFoundError
.
我正在使用 Python 3.6.5 版。
尝试解决此问题已失败:
- 使用 pip graph 仔细检查了我的虚拟环境中是否安装了 pandas
创建了全新的目录
pipenv install jupyter pandas --skip-lock
使用以下命令卸载系统范围内的所有内容:
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
- 更新的熊猫
- 使用 virtualenv 而不是 pipenv
virtualenv first-python-notebook
cd first-python-notebook
cd Scripts
activate
cd ..
pip install jupyter pandas
我测试了当我在命令 shell 中使用 python 时可以导入 pandas(是的)——仍然不能在 Jupyter 上工作。
我的导师认为问题在于系统范围的软件包干扰了虚拟软件包,但我们已经工作了几个小时,无法弄清楚如何解决这个问题。
任何帮助将不胜感激。请附上详细说明,因为我是初学者。
解决方案
如果您在 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 安装:
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”
推荐阅读
- python - 如何在每个垂直条上添加许多水平条?
- javascript - 我可以关闭 create-react-app 分块机制吗?
- python-3.x - 为分割图像上的轮廓应用 mark_boundaries
- c# - 当 ASP.NET Core API 操作上的 Date 属性无效时,模型变为 NULL
- amazon-web-services - Can't delete a Non-empty S3 bucket and Log group on deletion of CFN stack
- c++ - 当线路已经平衡时,为什么 asm 期望 ()
- c# - 如何在 ServiceStack ProxyFeature 中正确解码响应流?
- android - `ACTION_WEB_SEARCH` 在 Google 应用中启动搜索操作
- python - 基类 __init__ 中的不同行为取决于派生类
- azure-web-app-service - 如何禁用自定义事件的数据采样,但保留它用于请求?