2016-03-27 8 views
1

Ich bemerkte dies beim Spielen mit graph_tool. Einige Modulattribute scheinen nur verfügbar zu sein, wenn sie von ipython ausgeführt werden. Das einfachste Beispiel (example.py)Interessantes Importverhalten in ipython

import graph_tool as gt 

g = gt.Graph() 
gt.draw.sfdp_layout(g) 

läuft ohne Fehler aus ipython Verwendung run example.y', but from the command line, Python example.py` Ausbeuten

AttributeError: 'module' object has no attribute 'draw' 

Das gleiche gilt für den Halt ipython example.py. Ich bin verloren, was das verursachen würde. Ich würde gerne auf das Draw-Modul zugreifen, aber es scheint, als ob ich das nur über from graph_tool.draw import * tun kann. Jede Hilfe oder Erklärung wäre willkommen.

Antwort

1

Sie sollten alle Module, die Sie verwenden, explizit importieren. In Ihrem Fall müssen Sie z. import graph_tool.draw as gt_draw (nur hinzufügen import graph_tool.draw kann genug sein, aber dieser Code kann als nicht offensichtlich erachtet werden).

1

Während Graph-Tool importieren, importieren Sie es als:

import graph_tool.all as gt 

Dies importiert alle Module von Graph-Tool und wenn alle notwendigen Dinge installiert sind, sollte dies für Sie arbeiten.