PYTHONPATH को सेट करने के बावजूद VSCode में आयात त्रुटि

Oct 26 2020

मेरे पास स्थानीय रूप से WSL पर तैनात एक एयरफ़्लो वातावरण है, और मैं VScode का उपयोग डिबग और कोड के लिए कर रहा हूं।

मेरा ऐप फ़ोल्डर संरचना इस प्रकार है:

~/workspaces
|--- .env
|---organization/gcp/datalake
    |--- dags
        |--- //My dags
    |--- plugins
        |--- __init.py__
        |--- operators
            |--- __init.py__
            |--- facebook_operators.py
        |--- hooks
            |--- __init.py__
            |--- facebook_hooks.py

मुझे आयात के बारे में VSCode के व्यवहार को समझने में परेशानी हो रही है।

मैंने फ़ाइल के माध्यम से फ़ोल्डर्स dagsऔर जोड़े । मेरा VSCode सीधे निर्देशिका पर खोला जाता है ।pluginsPYTHONPATH.envworkspaces

समस्या :

मुझे आयात त्रुटियां मिलती हैं, हालांकि मैं go to definitionउस वर्ग का सफलतापूर्वक उपयोग कर सकता हूं जिसे मैं आयात करना चाहता हूं।

उदाहरण: मेरे में facebook_operators.py

from hooks.facebook_hooks import FacebookAdsHook निम्न त्रुटि उठाता है:

मॉड्यूल 'हुक' में 'facebook_hooks' का कोई नाम नहीं

मेरी .envफ़ाइल की सामग्री :

PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}

मुझसे कहां गलती हो गई? कृपया इस त्रुटि को समझना और हल करना चाहते हैं।

जवाब

JillCheng Oct 27 2020 at 02:14

facebook_operators.pyVSCode फ़ाइल को आयात करने के लिए आवश्यक फ़ाइल खोजने में मदद करने के लिए फ़ाइल की शुरुआत में " " निम्नलिखित कथन जोड़ें :

import os,sys 
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

(वर्तमान में खोली गई फ़ाइल के मूल फ़ोल्डर से फ़ाइल खोजने के लिए VSCode डिफॉल्ट करता है। हम उपरोक्त कथन का उपयोग उस फ़ाइल पथ को जोड़ने के लिए कर सकते हैं जिसे सिस्टम पथ में आयात करने की आवश्यकता है, और फिर VSCode इसे पा सकता है।)