2015-08-11 22 views
6

Sto provando a usare networkx per leggere in un file gml (piuttosto semplice, giusto?), Tranne quando provo per leggere nel file, ho ricevuto l'errore "networkx.exception.NetworkXError: can not token u'graph" in (3, 1) "Non ho molta familiarità con gml o networkx, quindi non sono stato in grado di diagnosticare il problema me stesso.Networkx read_gml errore "networkx.exception.NetworkXError: can notize u'graph" in (3, 1) "

Ciò che è ancora più strano è che il mio collega eseguirà esattamente lo stesso comando con lo stesso identico file, e verrà eseguito senza errori. Ho disinstallato e reinstallato networkx diverse volte a questo punto, qualcuno può aiutare a determinare da quale errore potrebbe provenire?

import networkx as nx 
g = nx.read_gml('disciplineNetwork.gml') 

Traceback (chiamata più recente scorso):

File "", line 1, in

File "", line 2, in read_gml

File "/usr/local/lib/python2.7/dist-packages/networkx/utils/decorators.py", line 220, in _open_file result = func(*new_args, **kwargs)

File "/usr/local/lib/python2.7/dist-packages/networkx/readwrite/gml.py", line 210, in read_gml G = parse_gml_lines(filter_lines(path), label, destringizer)

File "/usr/local/lib/python2.7/dist-packages/networkx/readwrite/gml.py", line 383, in parse_gml_lines graph = parse_graph()

File "/usr/local/lib/python2.7/dist-packages/networkx/readwrite/gml.py", line 372, in parse_graph curr_token, dct = parse_kv(next(tokens))

File "/usr/local/lib/python2.7/dist-packages/networkx/readwrite/gml.py", line 347, in parse_kv curr_token = next(tokens)

File "/usr/local/lib/python2.7/dist-packages/networkx/readwrite/gml.py", line 323, in tokenize (line[pos:], lineno + 1, pos + 1))

networkx.exception.NetworkXError: cannot tokenize u'graph' at (3, 1)

+0

Lo stesso sistema operativo sul computer dell'utente e del collega dell'utente? – Joel

+0

collega che usa anche python2.7? – Joel

+0

Il downgrade come indicato di seguito è corretto. Il nuovo networkx non può gestire i file gml generati da quello vecchio :( –

risposta

2

Ho avuto lo stesso problema e la soluzione per me è stato il downgrade della versione di NetworkX.

Vedere this question.

+0

Come è stato eseguito il downgrade a 1.9? Come si può verificare la versione della rete? – sAguinaga

+1

Aggiorna questo è quello che ho fatto per eseguire il downgrade: 'conda remove networkx' quindi 'conda install networkx = 1.9.1' – sAguinaga

+1

Io uso pip per gestire le librerie.In primo luogo, per disinstallare l'uso: 'pip disinstallare networkx', quindi installarlo di nuovo specificando la versione: 'pip install networkx == 1.9.1'. controlla quale versione della libreria hai installato usa 'pip show networkx' – Hernandcb

1

Sì. Il downgrade a networkx 1.9.1 è una buona soluzione. È possibile scaricare networkx 1.9.1 a https://pypi.python.org/pypi/networkx/1.9.1. Scarica il file zip. Quindi utilizzare: pip install networkx-1.9.1.zip. Questo automaticamente disinstallare networkx 1.10 e sostituirlo con networkx 1.9.1.

0

Non sono sicuro del formato del file gml, ma la riformattazione del file gml potrebbe risolvere il problema.

Controlla la mia risposta su this post.