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
相关产品推荐
相关产品推荐

