שימוש בOR-Tools בpython
-
יש חבילת כלים של גוגל שנועדה להתמודד עם כל מיני בעיות אופטימיזציה של נתונים וחישובים מורכבים כמו bin packing, TSP שנקראת OR-Tools התחלתי לעיין שם מעט בשביל איזה פרויקט שאני מתעסק איתו, והתקנתי את ספריית הפייתון של ortools.
כתבתי קוד בסיסי לחישוב הרצתי - והכל טוב ויפה, אחרי כמה שעות באתי להמשיך, אבל הפייתון מתעקש לטעון שהוא לא מכיר ספריה בשם כזה, ניסיתי להתקין שוב - הוא טוען שמותקן, הסרתי את הפייתון והתקנתי מחדש ואותו דבר, העתקתי גם את הדוגמת קוד המלאה מהאתר ועדיין הפייתון שלי מתעקש לטעון שהוא לא מכיר בהפניות למרות שהם ודאי תקינות כי הם מופיעות בדוגמה הרשמית...
Traceback (most recent call last): File "c:\python\ortools.py", line 4, in <module> from ortools.constraint_solver import routing_enums_pb2 File "c:\python\ortools.py", line 4, in <module> from ortools.constraint_solver import routing_enums_pb2 ModuleNotFoundError: No module named 'ortools.constraint_solver'; 'ortools' is not a package
אדגיש, שבהתחלה זה עבד מעולה. אחרי כמה שעות פתאום נאדה, ניסיתי כעת ממחשב אחר דנדש, התקנתי את הספריה אבל גם הוא מחזיר את אותה השגיאה.
(גם הקוד המקורי שלי, עובד היטב בgoogle colab.., כך שלא בו הבעיה...)C:\Windows\System32>pip install ortools Requirement already satisfied: ortools in c:\users\abaye\appdata\roaming\python\python310\site-packages (9.6.2534) Requirement already satisfied: absl-py>=0.13 in c:\users\abaye\appdata\roaming\python\python310\site-packages (from ortools) (1.4.0) Requirement already satisfied: numpy>=1.13.3 in c:\users\abaye\appdata\roaming\python\python310\site-packages (from ortools) (1.24.3) Requirement already satisfied: protobuf>=4.21.12 in c:\users\abaye\appdata\local\programs\python\python310\lib\site-packages (from ortools) (4.22.3) Requirement already satisfied: scipy>=1.10.0 in c:\users\abaye\appdata\roaming\python\python310\site-packages (from ortools) (1.10.1)
פתרונים?
-
@אביי אין לי הסבר למה בהתחלה עבד ופתאום לא, אבל אולי התקנה של Visual C++ כמו שכתוב בלינקים הבאים תעזור
https://github.com/google/or-tools/issues/737
https://stackoverflow.com/a/59998065/17059718 -
@אביי כתב בשימוש בOR-Tools בpython:
File "c:\python\ortools.py", line 4, in <module>
השורה הזאת מרמזת על כך שלסקריפט שלך קראת ortools.py, מה שגורם לפייתון לנסות לבצע import ממנו.
-
זה יכול לקרות בגלל סיבות שונות. הבעיה הנפוצה זה המיקום של הקוד שלך לספרייה.
https://stackoverflow.com/questions/4383571/importing-files-from-different-folder