सब कुछ pyproject.toml में घोषित करें और environment uv से चलाएं, जो virtual environment बनाता है, dependencies resolve करता है और तेजी से lock file लिखता है। सीधी dependencies को project table में ढीला रखें, दोहराने लायक installs के लिए lock file commit करें, और development टूल्स को अलग dependency groups में रखें ताकि प्रोडक्शन images में pytest और ruff न जाएं।
इंटरव्यूअर यह क्यों पूछते हैं
Python में packaging ऐतिहासिक रूप से तकलीफदेह रही है, इसलिए इंटरव्यूअर देख रहा है कि आप मौजूदा तरीकों पर हैं या दस साल पुरानी requirements file वाली आदत ढो रहे हैं। वे घोषित dependencies और lock file का फर्क चाहते हैं, यह समझ कि configuration की मानक जगह pyproject.toml है, और सबूत कि आपने CI तथा Docker में दोहराने लायक builds के बारे में सोचा है।
अपना जवाब कैसे स्ट्रक्चर करें
- pyproject.toml को सत्य का इकलौता स्रोत बताएं।
- घोषित ranges को lock file से अलग करें।
- runtime और development dependency groups बांटें।
- इसे CI और container builds से जोड़ें।
उदाहरण जवाब
सब कुछ pyproject.toml में रहता है: dependencies, ruff, mypy और pytest की tool configuration, build metadata। मैं इसे चलाने के लिए uv इस्तेमाल करता हूं, क्योंकि वह venv बनाता है, resolve करता है और इतनी तेजी से install करता है कि ठंडा CI environment मिनटों की जगह सेकंडों में तैयार होता है, और वह interpreter का वर्जन भी संभालता है ताकि कोई इस पर न लड़े कि path पर कौन सा Python है। सीधी dependencies को ठीक ठाक ढीले constraints मिलते हैं, फिर uv lock ठीक ठीक resolved सेट बनाता है और वह lock file commit होती है। CI और Docker उसी जमी हुई lock से install करते हैं, तो प्रोडक्शन में वही चलता है जो मैंने टेस्ट किया था। Development टूल्स अलग group में जाते हैं, जिससे runtime image छोटी रहती है और इसका मतलब यह भी है कि कोई छेड़ा हुआ linter प्रोडक्शन container में बैठा नहीं है। Docker में मैं पहले lock और manifest कॉपी करके install करता हूं, source कॉपी करने से पहले, ताकि layer caching सच में काम करे। एक पुराने प्रोजेक्ट को pip और requirements files से हटाने में शायद एक दोपहर लगी और हमारे CI का setup स्टेप कई मिनट घट गया।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- lock file आपको किससे बचाती है?
- जिस dependency का wheel न हो उसे कैसे संभालते हैं?
- लोकल पर कई Python वर्जन कैसे मैनेज करते हैं?
Python डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें