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

Python编写A*搜索算法时遇ModuleNotFoundError: No module named 'Queue'问题

解决Python中PriorityQueue导入报错的问题

嘿,我之前也碰到过一模一样的问题!你这是不小心踩了Python2和Python3模块命名差异的坑啦~

问题根源

在Python2里,优先级队列模块的名字是大写的Queue,但到了Python3,官方把这个模块名改成了全小写的queue。你现在用的应该是Python3环境,所以导入大写的Queue自然会报ModuleNotFoundError。

正确的导入方式

给你几种靠谱的导入写法,选一种用就行:

  • 直接导入整个模块:
    import queue
    # 初始化优先级队列
    pq = queue.PriorityQueue()
    
  • 直接导入PriorityQueue类:
    from queue import PriorityQueue
    # 初始化优先级队列
    pq = PriorityQueue()
    

简单使用示例

给你个小例子,看看怎么用这个队列存A*算法里的节点:

from queue import PriorityQueue

# 初始化队列
pq = PriorityQueue()

# 往队列里放元素,优先级在前(数字越小优先级越高),后面是你的节点数据
pq.put((1, "节点1"))
pq.put((0, "节点0"))
pq.put((2, "节点2"))

# 取出元素(按优先级顺序)
while not pq.empty():
    priority, node = pq.get()
    print(f"优先级: {priority}, 节点: {node}")

这样你就可以把A*里的节点带着它们的f值(优先级)放进队列里,队列会自动帮你按优先级排序啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:02:13