You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已安装pyshp但Jupyter导入shapefile报ModuleNotFoundError怎么办

问题根因

这个报错的核心原因是执行pip安装操作的Python环境,和Jupyter Notebook当前运行代码使用的Python内核不属于同一个环境。
返回的"Requirement already satisfied"提示仅代表pyshp被安装在了系统全局Python或者其他虚拟环境中,Jupyter当前调用的环境内并没有安装这个包。
补充说明:pyshp包安装完成后使用import shapefile导入是正确写法,不存在导包名拼写错误的问题。

解决方法

方案1:直接在当前Notebook内安装(操作成本最低)

在当前Notebook中新建一个代码单元,执行以下命令,会自动调用当前内核对应的pip安装pyshp,不会出现环境错配的问题:

import sys
!{sys.executable} -m pip install pyshp

命令执行完成后,点击顶部菜单栏「内核」-「重启内核」,再运行import shapefile as sh即可正常导入。

注意:不要直接在单元格中执行!pip install pyshp,这种写法依然可能调用到其他环境的pip,无法把包装到当前内核环境中。

方案2:手动定位Jupyter对应环境安装

如果不想在Notebook里执行安装命令,可以先定位当前Jupyter使用的Python解释器路径:
在Notebook单元格中执行:

import sys
print(sys.executable)

复制输出的完整路径,打开系统命令提示符,用该路径替换下面命令里的<解释器路径>后执行:

<解释器路径> -m pip install pyshp

举个例子,如果输出的路径是C:\Users\张三\miniconda3\envs\gis\python.exe,实际执行的命令就是:

C:\Users\张三\miniconda3\envs\gis\python.exe -m pip install pyshp

安装完成后重启Jupyter内核即可。

方案3:补全虚拟环境的Jupyter内核注册

如果你使用conda/venv创建了独立虚拟环境,但是没有把环境注册到Jupyter的内核列表里,也会出现选不到对应环境、装包错位的问题:

  • 在命令提示符中激活你要使用的虚拟环境
  • 执行以下命令安装ipykernel并注册内核:
pip install ipykernel
python -m ipykernel install --user --name=你的自定义环境名称
  • 注册完成后重启Jupyter,在顶部「内核」-「更换内核」菜单中选中你刚注册的环境,再执行导包操作即可。

内容的提问来源于stack exchange,提问作者speck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:15:37