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

运行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.1
    
    这个版本还保留着get_nearest_node函数,能直接适配MaaSSim的现有代码。

试试这两个办法,应该就能顺利推进啦!

备注:内容来源于stack exchange,提问作者GDog

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:44:34