"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन और कविता के लिए Emacs `आधारितपाइराइट-लैंगसर्वर` का उपयोग करना

पायथन और कविता के लिए Emacs `आधारितपाइराइट-लैंगसर्वर` का उपयोग करना

2024-11-05 को प्रकाशित
ब्राउज़ करें:546

Emacs for Python and Poetry Using `basedpyright-langserver`

मैं पायथन के लिए अपने वर्तमान ईमैक सेटअप से बहुत खुश हूं, लेकिन मुझे सेटअप थोड़ा मुश्किल लगा। मैं अपने भविष्य के लिए और ठोस इमैक कॉन्फिगरेशन की तलाश कर रहे किसी भी अन्य पाइथॉनिस्टा के लिए यहां अपने सेटअप का दस्तावेजीकरण करूंगा।

पायराइट क्यों आधारित?

इस बिंदु तक, मैं अपनी सभी टाइपचेकिंग आवश्यकताओं के लिए कमांड लाइन पर 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 या अपना ~/.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। इसका प्रभाव यह होगा कि एलएसपी-मोड प्रोजेक्ट रूट के बारे में भूल जाएगा और इसे फिर से खोजने के लिए मजबूर करेगा।

हैप्पी कोडिंग!

मुझे आशा है कि इससे आपको अपने पायथन विकास परिवेश पर एक अच्छी शुरुआत मिली है। यदि आपके पास कोई प्रश्न है, ठीक है, मैं इस सब में एक नौसिखिया हूं, और शायद मैं आपकी मदद नहीं कर सकता, लेकिन यदि आपके पास ईमैक के साथ बेस्डपाइराइट का उपयोग करने के लिए कोई अतिरिक्त सुझाव या युक्तियां हैं तो मैं मर्ज अनुरोधों पर विचार करूंगा।

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/webbureaaucrat/emacs-for-python-and-poetry-using- आधारित-langserver-ca9?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3