Python 2.7 ValueError:需要超过1个值才能解包-python图形核心

Python 2.7 ValueError:需要超过1个值才能解包-python图形核心,python-2.7,pygraph,Python 2.7,Pygraph,我计划尝试使用这段代码来进行关键路径分析。 当运行这段代码时,我遇到了以下错误,但我不知道这是什么意思(因为我现在不知道代码是如何工作的) 回溯(最近一次调用上次):文件 “/Users/PeterVanvoorden/Desktop/test.py”,第22行,在 G.add_edge('A','B',1)文件“/Library/Python/2.7/site packages/Python_graph_core-1.8.2-py2.7.egg/pygraph/classes/digraph.

我计划尝试使用这段代码来进行关键路径分析。 当运行这段代码时,我遇到了以下错误,但我不知道这是什么意思(因为我现在不知道代码是如何工作的)

回溯(最近一次调用上次):文件 “/Users/PeterVanvoorden/Desktop/test.py”,第22行,在 G.add_edge('A','B',1)文件“/Library/Python/2.7/site packages/Python_graph_core-1.8.2-py2.7.egg/pygraph/classes/digraph.py”, 第161行,添加_边 u、 v=边缘值错误:需要超过1个值才能解包

Pedro Matiello 2007-2008版权所有 #许可证:MIT(请参阅复制文件) 导入系统 sys.path.append(“..”) 导入pygraph 从pygraph.classes.digraph导入有向图 从pygraph.algorithms.critical import可传递边,临界路径 #关键路径算法和传递性检测算法的演示 G=有向图() G.add_节点(“A”) G.add_节点('B')) G.add_节点('C')) G.add_节点('D')) G.add_节点('E')) G.add_节点(“F”) G.添加边('A','B',1) G.添加边('A','C',2) G.增加边缘('B','C',10) G.添加边('B','D',2) G.增加边缘('B','E',8) G.增加边缘('C','D',7) G.增加边缘('C','E',3) G.添加边('E','D',1) G.增加边缘('D','F',3) G.添加边('E','F',1) #添加此边以添加循环 #G.添加边('E','A',1) 打印传递边(G) 打印关键路径(G) 我知道在不理解的情况下复制代码有点愚蠢,但我想我应该先尝试一下示例代码,看看包是否工作,但显然它不工作。现在我想知道这是否只是因为示例代码中的一个小错误,或者这是一个更基本的问题。

我查看了一下,发现
add_edge
正在尝试将第一个位置参数解包为2元组

如果更改这些行:

G.add_edge('A','B',1)
G.add_edge('A','C',2)
...
致:


它应该会起作用。但是,我以前没有使用过
pygraph
,因此这可能仍然不会产生期望的结果。

我从未使用过
pygraph
,但在阅读源代码时,看起来您应该执行
G.add_edge(('A','B'),1)
(注意额外的一对括号)。你能改变这些线路,看看能不能修好它?它现在可以运行了!令人惊叹的!您在哪个文件中找到此信息?我没有找到任何像样的“如何”文档。不幸的是,我没有找到,这就是为什么我给你留下了一条评论而不是一个答案,因为我只知道你为什么会得到
ValueError
,而不知道这应该如何使用。我只是瞥了一眼你的错误发生的地方,看到它正试图将这个函数的第一个参数解包为一个2元组。我可以将你的评论标记为一个答案吗?或者我应该删除这个问题?作为答案发布,以便您可以接受。我看了看,找不到好的pygraph教程。很抱歉
G.add_edge('A','B',1)
G.add_edge('A','C',2)
...
G.add_edge(('A', 'B'), 1)  # note the extra parens
G.add_edge(('A', 'C'), 2)
...