I get a 'Segmentation fault (core dumped)' error when I try to calculate the pseudo_diameter() of a GraphView object <class 'graph_tool.GraphView'>. I must convert the GraphView object to a Graph object <class 'graph_tool.Graph'> to perform this calculation? How do I make this conversion? My detailed problem is: I have a graph that is fragmented in several components and I want to calculate several measures on every component, so I must extract every component as a graph to be able to apply the different tools on it. To do this I use label_components() to create a vertex PropertyMap that label the components vprop_comps, size_comps = gt.label_components(g) from this Property Map (vprop_comps) I create one Boolean PropertyMap for every component, the Boolean Property Map for a component will have 1 for every vertex that belong to this component and 0 otherwise, finally I construct a GraphView object from the Boolean Property Map of a component, and then apply the different tools on this object. My code is: # for all components for i in range(size_comps.size): # create a boolean property map vprop_component_i = g.new_vertex_property("bool") # explore the property map that label the components 'vprop_comps' for j in range(vprop_comps.a.size): # if vprop_comps sugest that vertex j is in component i if (vprop_comps.a[j] == i): # put 'true' in the property of vertex j in the property map of component i vprop_component_i[g.vertex(j)] = True # With the boolean property map constructed for component i I can create a # GraphView object representing component i: c_i = gt.GraphView(g, vfilt=vprop_component_i) # and apply the different measures on it: clust_c_i = gt.global_clustering(c_i)[0] length_c_i = gt.pseudo_diameter(c_i)[0] Everything goes fine until I calculate the pseudo_diameter() of c_i, if I try to, I receive a 'Segmentation fault (core dumped)' error. Is there a more direct way to extract the components as graph objects?