我正在使用Ubuntu 16.04上的Njissen Gaston频繁子图挖掘实现,并尝试在Python 3.6.5和2.7.15rc1上运行。在执行程序时,我收到一个错误提示。
Traceback (most recent call last):
File "/home/elias/.local/bin/gaston", line 11, in <module>
load_entry_point('gaston-py==0.1', 'console_scripts', 'gaston')()
File "/home/elias/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 484, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/home/elias/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2725, in load_entry_point
return ep.load()
File "/home/elias/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2343, in load
return self.resolve()
File "/home/elias/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2349, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/home/elias/.local/lib/python2.7/site-packages/gaston_py/gaston.py", line 5, in <module>
import gaston_py.factory as factory
File "/home/elias/.local/lib/python2.7/site-packages/gaston_py/factory.py", line 7, in <module>
import gaston_py.embedding as embedding
File "/home/elias/.local/lib/python2.7/site-packages/gaston_py/embedding.py", line 70
yield from _create_embedding_list(graph, visited, neighbor_id)
^
SyntaxError: invalid syntax
在
yield from _create_embedding_list(graph, visited, neighbor_id)
产生错误的代码块:
def _create_embedding_list(graph, visited, node_id):
for edge_label, neighbor_label, neighbor_id in sorted(_neighbor_labels(graph, visited, node_id)):
if (node_id, neighbor_id) not in visited:
visited.add((node_id, neighbor_id))
visited.add((neighbor_id, node_id)) # if graph is undirected
yield node_id, (edge_label, neighbor_label)
yield from _create_embedding_list(graph, visited, neighbor_id)
由于这是官方实现,我怀疑可能存在不兼容或类似的问题。我该如何运行此代码?感谢任何建议!
yield from
是 Python3 中的特性。您的 traceback 是来自 python2,请提供一个来自 python3 的 traceback。 - MisterMiyagiFile "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 778, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'gaston-py==0.1' distribution was not found and is required by the application
。谢谢,它现在使用Python3。现在我必须弄清楚如何找到gaston-py分发。 - Elias