graph-tool - AttributeError: 'PropertyDict' object has no attribute 'species'

graph-tool - AttributeError: 'PropertyDict' object has no attribute 'species'

我有以下代码使用 属性 地图注释图表:

from graph_tool.all import *

# define graph
g = Graph()
g.set_directed(True)
species = g.new_vertex_property("string")
species_dict = {}
reaction_dict = {}

#add species and reactions
s1 = g.add_vertex()
species[s1] = 'limonene'
species_dict[g.vertex_index[s1]] = 'limonene'

g.vertex_properties["species"] = species
g.vp.species[s1]

当我 运行 执行此操作时,我收到以下错误消息:

File "/home/pmj27/projects/NOC/exergy/make_graph.py", line 45, in <module>
g.vp.species[s1]

AttributeError: 'PropertyDict' object has no attribute 'species'

这是为什么?如果我在我的 IPython 控制台中输入 g.vp,我会得到 {'species': <PropertyMap object with key type 'Vertex' and value type 'string', for Graph 0x7f285d90ea10, at 0x7f285d90ef90>} 作为答案,所以显然有一个 属性 地图。

通过属性访问 属性 地图(如您的示例中的 g.vp.species[s1])仅在较新版本的图形工具(当前为 2.11,截至 2015 年 11 月)中可用。在你使用的版本(2.2.42)中,必须使用字典接口:g.vp["species"][s1].