אני יושב מהבוקר על התרגיל graph ובינתיים תקוע עדיין בחיפוש מודול שאפשר להציג באמצעותו גרף מתאים.
ניסיתי את pydot ואת graphviz, בשתיהן היו לי הרבה תקלות רק בהתקנה.
אחר כך ניסיתי את networkx אבל דוגמאות הקוד מהתיעוד מקפיצות לי כל מיני שגיאות שלא מצאתי להן פתרונות.
אשמח להכוונה
adva.alkalay
אם מצליחים לעבור את ההתקנה של graphviz בשלום, הוא נהדר לתרגיל לדעתי
גם אני הסתבכתי קצת בהתחלה, אבל זה בהחלט אפשרי
Alon.B.A
זה פשוט לא עובד לא משנה מה אני עושה.
ניסיתי מספר התקנות. אחר כך ניסיתי לעדכן את conda, בכל פעם זה מה שאני מקבל:
ניסיתי להוריד את ההתקנה לווינדוז מהאתר שלהם. זה מוריד לי קובץ זיפ שבתוכו אני לא מוצא שום קובץ התקנה. איך הצלחת לבצע את ההתקנה מהאתר עצמו?
Alon.B.A
אדווה @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. האם זה אומר שאני צריך להסיר את קונדה ולהתקין מחדש את כל העסק?
adva.alkalay
@mbrodsky תנסה את הקוד הבא, ואם יש שגיאה תצלם:
from graphviz import Digraph
g = Digraph('G', filename='hello', format='png')
g.edge('Hello', 'World')
g.view()
אני כבר שעות מנסה לסדר את הבעיה הזו. במסגרת החיפושים שלי קראתי שצריך לבצע אקטיבציה לפלאגינים שמאפשרים עבודה עם קבצים כמו pdf ו png באמצעות הרצה הפקודה dot -c. אז ניסיתי להריץ את הפקודות שהומלצו כאדמין:
מהבדיקה שביצעתי עם dot -v נראה שהפלאגינים אכן מותקנים. בנוסף גם ביצעתי בדיקה לנתיב ב environment variables ונראה שהנתיב נכון. אחרי שביצעתי את כל הבדיקות האלה גם עשיתי ריבוט למחשב רק כדי לראות אם זה יעזור. בינתיים אני ממשיך להתקל באותן הודעות שגיאה שאומרות לי שהוא לא מזהה את סוגי הקבצים האלה.
Yam
אם אתה מבצע:
import pydot
print(pydot.find_graphviz())
מה יוצא?
aviadamar
גם שאני מנסה להריץ את:
dot.render('graph.gv', view=True)
מתקבל השגיאה:
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']
האם מישהו בסוף הצליח להתגבר עלזה ?
aviadamar
לי יוצא:
AttributeError: module 'pydot' has no attribute 'find_graphviz'
אבלל ממה שקראתי בstack הפונקציה find_graphviz לא קיימת ב pydot כבר מאז גרסא 1.2.3
ron.huberfeld
תבדוק את ההתקנה על המערכת הפעלה שלך: https://www.graphviz.org/download/
תוודא ש dot -V עובד משורת הפקודה.
הקטע הזה בקוד צריך לאשר את ההתקנה -
def check_dependencies():
if not shutil.which('dot'):
logging.error(
'Command "dot" was not found, visual graph will not be available.')
Yam
דיברתי עם @aviadamar ומה שפתר את זה אצלו היה להריץ את dot -c ב־cmd עם הרשאות administrator.
2 לייקים
Yam
מה כתוב אחרי המילה stderr? (השורה האדומה האחרונה)
זה נראה כאילו יש לך שני dot במחשב (זו התוכנה ש־graphviz מתקשר איתה כדי ליצור גרפים) וזה עושה בלאגן.
אם תרצה מוזמן לשלוח הודעה פרטית וננסה לפתור את זה במהרה