运行MaaSSim时出现ImportError:无法从osmnx.distance导入get_nearest_node的问题求助
运行MaaSSim时出现ImportError:无法从osmnx.distance导入get_nearest_node的问题求助
我最近在尝试运行MaaSSim,但刚跟着步骤操作就卡住了。已经成功克隆了Git仓库,也安装了osmnx(单独测试能正常运行),但导入模块时遇到了报错。具体报错信息如下:
import MaaSSim.utils Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\user\src\maassim\MaaSSim\utils.py", line 14, in <module> from osmnx.distance import get_nearest_node ImportError: cannot import name 'get_nearest_node' from 'osmnx.distance' (C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\osmnx\distance.py). Did you mean: 'nearest_nodes'?
之后我尝试导入其他相关模块:
import logging from dotmap import DotMap import MaaSSim.simulators from MaaSSim.data_structures import structures
但还是因为前面的导入问题无法继续,有没有大佬能帮我解决这个问题呀?
嘿,这个问题我之前也碰到过!其实核心原因是你安装的osmnx版本太新了——在新版osmnx里,get_nearest_node这个函数已经被重命名成nearest_nodes啦(报错提示里其实已经给出线索了哦)。
给你两个可行的解决办法:
- 办法一:适配新版本osmnx
找到MaaSSim代码里utils.py文件的第14行,把from osmnx.distance import get_nearest_node改成from osmnx.distance import nearest_nodes,同时还要检查代码里所有调用get_nearest_node的地方,统一替换成nearest_nodes。注意新版函数的参数和返回值格式可能略有调整,比如处理多个节点时的返回逻辑,你可以根据实际运行情况微调。 - 办法二:安装兼容的旧版osmnx
如果你不想修改MaaSSim的代码,可以卸载当前的osmnx,安装一个和MaaSSim兼容的旧版本。打开命令行运行以下命令即可:
这个版本还保留着pip uninstall osmnx pip install osmnx==1.5.1get_nearest_node函数,能直接适配MaaSSim的现有代码。
试试这两个办法,应该就能顺利推进啦!
备注:内容来源于stack exchange,提问作者GDog
相关产品推荐
相关产品推荐

