אני יושב מהבוקר על התרגיל graph ובינתיים תקוע עדיין בחיפוש מודול שאפשר להציג באמצעותו גרף מתאים.
ניסיתי את pydot ואת graphviz, בשתיהן היו לי הרבה תקלות רק בהתקנה.
אחר כך ניסיתי את networkx אבל דוגמאות הקוד מהתיעוד מקפיצות לי כל מיני שגיאות שלא מצאתי להן פתרונות.
אשמח להכוונה
אדווה @adva.alkalayהמדהימה עזרה לי כמה שעות עם התקלות ובסוף נראה שזה עבד עם הקוד הזה:
from graphviz import Digraph
g = Digraph('G', filename='hello', format='png')
g.edge('Hello', 'World')
g.view()
והדפיס את הגרף כמו שצריך. אני חושב שמה שקרה זה שהייתה לי תקלה כלשהי בconda שמנעה התקנה מלאה של החבילה. רק אחרי שמחקתי את הconda והתקנתי מחדש את conda ואת החבילה של graphviz (ואחרי עוד כמה תקלות עם PATH שאין לי שמץ מה זה) אז הדברים הסתדרו. היה מאוד מאוד מתסכל.
בנוגע לקוד ששלחת, הוספתי את השורה from graphviz.dot import Graph (אין לי שמץ מה זה graphviz.dot או Graph, זה פשוט מה ש-VS Code הציע, בינתיים רק התעסקתי עם התקלה הטכנית).
וזה הפלט:
אז התקנתי את החבילה במחשב דרך האתר וביצעתי התקנה בקומנד ליין (כאדמינסטרטור) באמצעות השורות שפורסמו כאן על ידי כמה אנשים (conda install -c anaconda python-graphviz). הקוד בדיקה שפרסמת עובד, אבל הקוד דוגמה מהדוקומנטציה מחזיר לי את אותה שגיאת pdf. האם זה אומר שאני צריך להסיר את קונדה ולהתקין מחדש את כל העסק?
אני כבר שעות מנסה לסדר את הבעיה הזו. במסגרת החיפושים שלי קראתי שצריך לבצע אקטיבציה לפלאגינים שמאפשרים עבודה עם קבצים כמו pdf ו png באמצעות הרצה הפקודה dot -c. אז ניסיתי להריץ את הפקודות שהומלצו כאדמין:
מהבדיקה שביצעתי עם dot -v נראה שהפלאגינים אכן מותקנים. בנוסף גם ביצעתי בדיקה לנתיב ב environment variables ונראה שהנתיב נכון. אחרי שביצעתי את כל הבדיקות האלה גם עשיתי ריבוט למחשב רק כדי לראות אם זה יעזור. בינתיים אני ממשיך להתקל באותן הודעות שגיאה שאומרות לי שהוא לא מזהה את סוגי הקבצים האלה.
graphviz.backend.CalledProcessError: Command '['dot', '-Tpdf', '-O', 'graph.gv']' returned non-zero exit status 1. [stderr: b'Format: "pdf" not recognized. Use one of:\r\n']
זה נראה כאילו יש לך שני dot במחשב (זו התוכנה ש־graphviz מתקשר איתה כדי ליצור גרפים) וזה עושה בלאגן.
אם תרצה מוזמן לשלוח הודעה פרטית וננסה לפתור את זה במהרה