"תקלת" unresolved import ב-VS Code

Code_fSVA4BkAFR

עכשיו ניסיתי לעשות open file רק לתיקייה של day2, והבעיה לא קרתה.
אני אוהב שיש לי את האופציה לגשת מתוך התוכנה גם לחומר של שבועות/ימים קודמים ולכן ניסיתי לפתוח את week9 (תיקיית האב של day2) ואפילו את התיקייה שאני מחזיק בה את כל המחברות (תיקיית האב של week9)…

לפי מה שאני רואה כרגע, זה לא אפשרי… אבל לפחות אין לי את האזהרה המציקה הזאת חח

אתה משתמש בתוסף של Pylance?
בכל מקרה:
בתיקייה של .vscode בקובץ settings.json תוסיף בשורה האחרונה את כל הנתיבים של הworkspace שאתה משתמש בפרוייקט אחרי הפקודה הזו. לדוגמה בשבילך:
"python.analysis.extraPaths": ["day1", "day2", "day3"],

לייק 1

כן, היה נראה שזה חובה חח

שים לב לפקודה שרשמתי לך למעלה

לא עבד לי לצערי…

סתם כדי להבין - מה שאני רוצה לעשות הוא נגד הנורמה? כי אם צריך להתרגל לworkflow אחר אעשה זאת…
פשוט ככה עבדתי עם הJupiter (הייתי מריץ את הג’ופיטר מהתיקייה שמכילה את כל המחברות וכך יכולתי לקפץ בין מחברות כרצוני…) אז כנראה בגלל זה אני נעול על זה…

לייק 1

כשאתה מפעיל סקריפט פייתון, התיקייה שבה הוא נמצא אמורה להצטרף ל־sys.path, וככה פייתון אמור לזהות אילו מודולים היא יכולה לטעון.
אם תעשה בתור שתי השורות הראשונות ב־bye.py:

import sys
print(sys.path)

נוכל לראות יחסית בקלות מה הבעיה

לייק 1

נראה שהתיקייה הצטרפה לרשימת sys.path

אם אתה רושם import day2.hi זה מפסיק להעיק?

זה מקפיץ לי:
ModuleNotFoundError: No module named 'day2'

כן, השאלה האם זה הפסיק להיצבע בצהוב

כן, זה לא בצהוב (אבל כאמור גם לא עובד)

נראה פה בתמונה כאילו פתחת workspace ב-day2
הייתי אומר לך להשתמש ב-workspace שונה עובר כל “פרוייקט”, או בפיתרון שרשמתי למעלה

אני עם אותה בעיה, ניסיתי את ה- python.analysis.extraPaths": [“day1”, “day2”, “day3”]
והבעיה לא נפתרה בינתיים. ממשיך לחפש פתרונות אחרים.
תודה לעוזרים!

אם תוכל לצלם את היררכיית הקבצים זה יהיה טוב

לייק 1

בטח:

תנסה להוסיף ב-settings.json תחת התיקייה .vscode את השורה הבאה:

"python.analysis.extraPaths": [

        "day1",

        "day2",

        "day2/chess",

        "day2/world"

    ],

טוב אז ככה, אני לא הבנתי שההגדרה הזו היא הגדרה ספציפית של pylance ולא היה לי אותו.
התקנתי pylance והבעיה נפתרה, הוספתי באמת את תת התיקייה chess כדי לפתור problem אחד אחרון של import של board.

המון תודה :slight_smile:

הייתי בטוח אחרי שקראת את התגובות למעלה שהבנת שמדובר עם התוסף הזה. בכל מקרה, אופציה נוספת -
לרשום
import day2.chess.pieces.queen
לדוגמה אם אתה רוצה לייבא את המלכה (מאחר שהworkspace שלך נפתח על התיקייה week9)

לייק 1

להרחבה תקרא את זה:
https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html

נלקח מתוך יום 2 של השבוע:

לייק 1

כן, קראתי את התגובות.
פשוט שאלת אותו אם הוא משתמש בpylance ואז כתבת בכל מקרה (אז חשבתי שההגדרה בכל מקרה קיימת) :sweat_smile:
הבנתי שחייב אותו רק אחרי שערכתי את settings.json בvscode וראיתי שההגדרה greyed out(לפני זה ערכתי בnotepad++)
המון תודה :slight_smile: