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

Plotly模块报错ModuleNotFoundError:缺少plotly.validators.scattergeo模块

问题描述

我是Python新手,刚开始使用Plotly模块,运行代码时出现ModuleNotFoundError错误,提示找不到plotly.validators.scattergeo模块。已经排查过OneDrive同步问题,也重新卸载安装了Plotly,但问题仍未解决,想咨询还有哪些遗漏的排查点?

运行代码

import json

from plotly.graph_objs import Scattergeo, Layout
from plotly import offline

# Explore the structure of the data
filename = "C:/Users/balm2/OneDrive/Documentos/Programming/Python/Python VS/COsas raras/Chapter 16/eq_data_1_day_m1.json"
with open(filename) as f:
    all_eq_data = json.load(f)

all_eq_dicts = all_eq_data["features"]

mags, lons, lats = [], [], []
for eq_dict in all_eq_dicts:
    mag = eq_dict["properties"]["mag"]
    lon = eq_dict["geometry"]["coordinates"][0]
    lat = eq_dict["geometry"]["coordinates"][1]
    mags.append(mag)
    lons.append(lon)
    lats.append(lat)

print(mags[:10])
print(lons[:5])
print(lats[:5])

# Map the earthquakes
data = [Scattergeo(lon=lons, lat=lats)]
my_layout = Layout(title="Global Earthquakes")

fig = {"data": data, "layout": my_layout}
offline.plot(fig, filename="global_earthquakes.html")

错误信息

File "C:\Users\balm2\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\plotly\graph_objs\_scattergeo.py", line 2248, in __init__
    self["lat"] = _v
  File "C:\Users\balm2\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\plotly\basedatatypes.py", line 4838, in __setitem__
    validator = self._get_validator(prop)
  File "C:\Users\balm2\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\plotly\basedatatypes.py", line 4320, in _get_validator
    return ValidatorCache.get_validator(self._path_str, prop)
  File "C:\Users\balm2\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\plotly\validator_cache.py", line 29, in get_validator
    importlib.import_module("plotly.validators." + parent_path),
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'plotly.validators.scattergeo'
排查建议
  • 检查Plotly版本兼容性:当前使用的Plotly版本可能与代码API结构不匹配。部分版本调整了validators模块的结构,可尝试安装指定稳定版本,执行命令pip install plotly==5.15.0,安装完成后重新运行代码。
  • 确认Python环境一致性:确保运行代码的Python环境与安装Plotly的环境为同一个。打开命令行输入python --version查看当前环境版本,再输入pip list检查Plotly是否在该环境的包列表中;若使用VS Code,需确认右下角的Python解释器是否对应安装了Plotly的版本。
  • 清理Plotly残留文件:卸载Plotly后,手动删除Python安装目录下site-packages中的plotly文件夹(如错误信息中的C:\Users\balm2\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\plotly),再重新安装Plotly,避免残留文件引发异常。
  • 更换导入方式测试:代码采用的是旧版Plotly导入写法,可尝试改用新版导入方式,将from plotly.graph_objs import Scattergeo, Layout替换为import plotly.express as px,用px.scatter_geo实现功能,验证是否为模块结构问题。
  • 检查安装权限:安装Plotly时可能因权限不足导致部分文件未安装完整。用管理员权限打开命令行,重新执行pip uninstall plotly和pip install plotly,确保安装过程无报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:45:01