मैं पायथन के लिए अपने वर्तमान ईमैक सेटअप से बहुत खुश हूं, लेकिन मुझे सेटअप थोड़ा मुश्किल लगा। मैं अपने भविष्य के लिए और ठोस इमैक कॉन्फिगरेशन की तलाश कर रहे किसी भी अन्य पाइथॉनिस्टा के लिए यहां अपने सेटअप का दस्तावेजीकरण करूंगा।
इस बिंदु तक, मैं अपनी सभी टाइपचेकिंग आवश्यकताओं के लिए कमांड लाइन पर mypy --strict का उपयोग कर रहा हूं, लेकिन mypy बहुत छोटे कोडबेस के लिए भी काफी धीमा है, और यहां तक कि --strict मोड में भी यह वैसा नहीं है जितना हो सके उतना सख्त। यह एक भाषा सर्वर भी नहीं है, जो मैं अपने इमैक सेटअप के लिए चाहता हूं।
आधारितपाइराइट, जांच और विश्वसनीयता दोनों में कुछ उत्कृष्ट सुधारों के साथ पाइराइट का एक कांटा है। यह कुछ अच्छी लाइनिंग क्षमताओं के साथ एक तेज़ और आश्चर्यजनक रूप से सख्त टाइपचेकर है।
एकमात्र कमी जो मुझे अनुभव हो रही है वह यह है कि यह AWS के लिए boto3-stubs क्लाइंट के साथ mypy जितना अच्छा नहीं खेलता है और यह गैर-मानक # pyright का उपयोग करता है: मानक # प्रकार के बजाय टिप्पणियों को अनदेखा करें: टिप्पणियों को अनदेखा करें, लेकिन मैं कड़ाई से सख्त टाइप-चेकिंग अनुभव के पक्ष में उन मुद्दों के साथ रह सकता हूं।
यदि आपके पास कविता का उपयोग करने वाली मौजूदा परियोजनाएं हैं, तो आप अपने आभासी वातावरण के साथ थोड़ा खिलवाड़ करना चाहेंगे।
अपने प्रत्येक प्रोजेक्ट के मूल में जाएं और निम्नलिखित कमांड चलाएँ:
poetry config --local virtualenvs.in-project true
यदि यह पहले से मौजूद नहीं है तो यह एक poetry.toml फ़ाइल बनाएगा और एक संबंधित सेटिंग जोड़ देगा।
हालाँकि, यह वास्तव में आपके मौजूदा आभासी वातावरण को नहीं स्थानांतरित करेगा। इस परिवर्तन को प्रभावी करने के लिए, आपको अपना मौजूदा वर्चुअल वातावरण हटाना होगा, जिसे आप चलाकर पा सकते हैं
poetry env info --path
अपने .gitignore में .venv पथ और आपके द्वारा उपयोग किए जाने वाले किसी भी अन्य टूल के लिए कॉन्फ़िगरेशन, जैसे पाइकोडस्टाइल, जोड़ना न भूलें, अन्यथा आप समाप्त हो जाएंगे काफ़ी गड़बड़ है।
इसके बाद, आपको अपने pyproject.toml में एक कॉन्फ़िगरेशन अनुभाग जोड़ना चाहिए ताकि बेसपाइराइट को यह बताया जा सके कि आपके वर्चुअल वातावरण को कहां देखना है।
[tool.pyright] venv=".venv" venvPath="."
आप इसे pyrightconfig.json फ़ाइल में भी कर सकते हैं, यदि मेरे विपरीत, आप पहले से ही विभिन्न पायथन डेवलपमेंट टूल्स के लिए कॉन्फ़िगरेशन फ़ाइलों से पूरी तरह से अभिभूत महसूस नहीं करते हैं।
पाइराइट पर बेस्डपाइराइट के बारे में एक बहुत अच्छी बात यह है कि यह एक पहिये के रूप में नोडज निर्भरता का निर्माण करता है, इसलिए आप आश्वस्त हो सकते हैं कि बेस्डपाइराइट को आपकी मशीन पर काम करना चाहिए, भले ही आपने नोडज स्थापित किया हो।
अलगाव के लिए, आमतौर पर पिप के बजाय पिपएक्स का उपयोग करके निष्पादन योग्य पायथन पैकेज स्थापित करना एक अच्छा विचार है। आइए आगे बढ़ें और ऐसा करें।
pipx install basedpyright
स्वच्छता जांच के लिए, दौड़ने पर विचार करें
basedpyright --version
बेस्डपाइराइट इंस्टॉल करने से आपको बेस्डपाइराइट-लैंगसर्वर कमांड तक पहुंच भी मिलती है, लेकिन यह वास्तव में उपयोगकर्ताओं के साथ इंटरैक्ट करने के लिए नहीं लिखा गया है, इसलिए यदि आप बेस्डपाइराइट-लैंगसर्वर या बेस्डपाइराइट-लैंगसर्वर --वर्जन या कुछ और चलाते हैं, तो आपको एक नोडज स्टैक ट्रेस मिलेगा।
मैं मान लूंगा कि पाठक के रूप में आप जानते हैं कि एमईएलपीए से पैकेज कैसे स्थापित किया जाए और आपके पास इसे करने का पसंदीदा तरीका है। यहां वे सभी पैकेज हैं जिनकी आपको आवश्यकता है:
उन्हें इंस्टॉल करें और फिर अपना ~/.emacs या अपना ~/.emacs.d/init.el खोलें और निम्नलिखित जोड़ें:
;; lsp global settings (add-hook 'after-init-hook 'global-company-mode) (setq lsp-auto-guess-root t) ;; python (require 'lsp-mode) (setq lsp-pyright-langserver-command "basedpyright") (add-hook 'python-mode-hook (lambda () (require 'lsp-pyright) (lsp)))
आपको बस यही चाहिए।
यदि आपको लगता है कि आपने सब कुछ सही ढंग से सेट किया है और आपको अभी भी उन पैकेजों को ढूंढने के लिए एलएसपी-मोड प्राप्त करने में परेशानी हो रही है जो पोएट्री में उपलब्ध होने चाहिए, तो एक चीज़ जो आप आज़मा सकते हैं वह है कि इसमें जाएं और अपना हटा दें ~/.emacs.d/.lsp-session-v1। इसका प्रभाव यह होगा कि एलएसपी-मोड प्रोजेक्ट रूट के बारे में भूल जाएगा और इसे फिर से खोजने के लिए मजबूर करेगा।
मुझे आशा है कि इससे आपको अपने पायथन विकास परिवेश पर एक अच्छी शुरुआत मिली है। यदि आपके पास कोई प्रश्न है, ठीक है, मैं इस सब में एक नौसिखिया हूं, और शायद मैं आपकी मदद नहीं कर सकता, लेकिन यदि आपके पास ईमैक के साथ बेस्डपाइराइट का उपयोग करने के लिए कोई अतिरिक्त सुझाव या युक्तियां हैं तो मैं मर्ज अनुरोधों पर विचार करूंगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3