मैं कुछ पायथन ग्राफ़ विज़ुअलाइज़ेशन सीखने के लिए काम कर रहा हूं। मुझे कुछ ब्लॉग पोस्ट somethings कर रहा था, मैं कोशिश करना चाहता था। दुर्भाग्य से मैं बहुत दूर से मिला नहीं, तो इस त्रुटि का सामना: AttributeError: 'module' object has no attribute 'graphviz_layout'
नेटवर्कएक्स और पायग्राफविज़ को अकेले ठीक काम करने का कारण क्या हो सकता है लेकिन एक साथ नहीं?
कोड का सरलतम स्निप जो अपने सिस्टम पर त्रुटि reproduces यह है,
In [1]: import networkx as nx
In [2]: G=nx.complete_graph(5)
In [3]: nx.draw_graphviz(G)
------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-481ad1c1771c> in <module>()
----> 1 nx.draw_graphviz(G)
/usr/lib/python2.7/site-packages/networkx/drawing/nx_pylab.pyc in draw_graphviz(G, prog, **kwargs)
982 See networkx.draw_networkx() for a description of optional keywords.
983 """
--> 984 pos = nx.drawing.graphviz_layout(G, prog)
985 draw(G, pos, **kwargs)
986
AttributeError: 'module' object has no attribute 'graphviz_layout'
मैं एक ऐसी ही questions पाया, और posts इस कॉम्बो के साथ कठिनाई हो रही है, लेकिन एक ही त्रुटि नहीं है। एक close था, लेकिन यह स्वचालित रूप से स्वयं हल हो गया।
पहले, मैं सभी आवश्यक संकुल NetworkX और PyGraphViz (जो Scipy के समान आवश्यकताओं को सूचीबद्ध) स्थापित किए गए थे के लिए सत्यापित।
अगला, मैंने पाइथन में इन मॉड्यूल की स्थापना की जांच करने के लिए स्निप की तलाश की। पहले दो उदाहरण NetworkX Reference Documentation से हैं। यह MatPlotLib और GraphViz दोनों का उपयोग करके कुछ उदाहरण स्निप सूचीबद्ध करता है।
matplotlib कोड उदाहरण मेरे लिए काम करता (स्क्रीन के लिए एक छवि renders),
In [11]: import networkx as nx
In [12]: G=nx.complete_graph(5)
In [13]: import matplotlib.pyplot as plt
In [13]: nx.draw(G)
In [13]: plt.show()
हालांकि, Graphviz भी snips उत्पादन मिलती-जुलती त्रुटियां,
In [16]: import networkx as nx
In [17]: G=nx.complete_graph(5)
In [18]: H=nx.from_agraph(A)
------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-18-808fa68cefaa> in <module>()
----> 1 H=nx.from_agraph(A)
AttributeError: 'module' object has no attribute 'from_agraph'
In [19]: A=nx.to_agraph(G)
------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-19-32d1616bb41a> in <module>()
----> 1 A=nx.to_agraph(G)
AttributeError: 'module' object has no attribute 'to_agraph'
In [20]: print G
complete_graph(5)
फिर मैंने Layout & Drawing पर PyGraphViz के ट्यूटोरियल पेज को आजमाया। इसमें कुछ स्निप भी हैं। पायग्राफविज़ ने को नाटो (डिफ़ॉल्ट), पायडॉट, और सर्को पोस्ट स्क्रिप्ट आउटपुट (गिंप का उपयोग करके देखा) के साथ पास किया। (केवल अंतर यह है कि इन PyGraphViz उदाहरण प्रदर्शन में प्रस्तुत नहीं किए जाते हैं, लेकिन फ़ाइलों के लिए)।
In [1]: import pygraphviz as pgv
In [2]: d={'1': {'2': None}, '2': {'1': None, '3': None}, '3': {'2': None}}
In [3]: A=pgv.AGraph(d)
In [4]: A.write("pygraphviz_test_01.dot")
In [5]: A.layout()
In [6]: A.draw('pygraphviz_test_01.png')
काम करने के लिए जटिलता के PyGraphViz requires GraphViz पैकेज बाइनरी जोड़ा जा रहा है,। मैं आर्क लिनक्स का उपयोग कर रहा हूं, और उस डिस्ट्रो के संस्करण को स्थापित किया है। आर्क लिनक्स में example to test installation (फिर से, आउटपुट करने के लिए आउटपुट) है जो भी पास कर चुका है।
मुझे क्या याद आ रही है? क्या नेटवर्कएक्स & PyGraphViz को अकेले ठीक काम करने का कारण बन सकता है लेकिन एक साथ नहीं?