أنا سعيد جدًا بإعداد emacs الحالي الخاص بي لـ Python، لكنني وجدت أن الإعداد صعب بعض الشيء. سأقوم بتوثيق الإعداد الخاص بي هنا لنفسي في المستقبل ولأي من مستخدمي Pythonist الآخرين الذين يبحثون عن تكوين emacs قوي.
حتى هذه اللحظة، كنت أستخدم mypy --strict في سطر الأوامر لجميع احتياجاتي الخاصة بفحص الكتابة، ولكن mypy بطيء جدًا حتى بالنسبة لقواعد التعليمات البرمجية الصغيرة جدًا، وحتى في الوضع --strict فهو ليس كذلك صارمة كما يمكن أن يكون. كما أنه ليس خادم لغة، وهو ما أريده لإعداد emacs الخاص بي.
تعتبر حقوق الطبع والنشر المستندة إلى حقوق الطبع والنشر بمثابة شوكة من حقوق الطبع والنشر مع بعض التحسينات الممتازة في كل من التحقق والموثوقية. إنه مدقق طباعة سريع وصارم بشكل رائع مع بعض إمكانيات الفحص الجيدة بالإضافة إلى ذلك.
العيوب الوحيدة التي أواجهها هي أنها لا تعمل بشكل جيد تمامًا مثل mypy مع عملاء boto3-stubs لـ AWS وأنها تستخدم # pyright غير قياسي: تجاهل التعليقات بدلاً من النوع # القياسي: تجاهل التعليقات، ولكن يمكنني التعايش مع هذه المشكلات لصالح تجربة صارمة لفحص النوع.
إذا كان لديك مشاريع حالية تستخدم الشعر، فسوف ترغب في التلاعب قليلاً ببيئتك الافتراضية.
انتقل إلى جذر كل مشروع من مشاريعك وقم بتشغيل الأمر التالي:
poetry config --local virtualenvs.in-project true
سيؤدي هذا إلى إنشاء ملف poetry.toml إذا لم يكن الملف موجودًا بالفعل وإضافة الإعداد المقابل.
ومع ذلك، لن يؤدي هذا إلى نقل بيئتك الافتراضية الحالية. لكي يسري هذا التغيير، يجب عليك إزالة البيئة الافتراضية الموجودة لديك، والتي يمكنك العثور عليها عن طريق تشغيل
معلومات البيئة الشعرية - المسارpoetry env info --pathلا تنس إضافة المسار
.venv إلى .gitignore والتهيئة لأي أدوات أخرى قد تستخدمها، مثل pycodestyle، وإلا فسوف ينتهي بك الأمر إلى فوضى كبيرة.
بعد ذلك، يجب عليك إضافة قسم التكوين إلىpyproject.toml لإخبار موقع pyright بالمكان الذي تبحث فيه عن بيئتك الافتراضية.
[tool.pyright] فين = ".فينف" فينفباث = "."poetry env info --pathيمكنك أيضًا القيام بذلك في ملف
pyrightconfig.json إذا كنت، على عكسي، لا تشعر بالفعل بأن ملفات التكوين الخاصة بأدوات تطوير Python المختلفة قد تجاوزت تمامًا.
تثبيت Basedpyright كخادم لغةللعزل، عادةً ما يكون من الجيد تثبيت حزم Python القابلة للتنفيذ باستخدام pipx بدلاً من pip. دعونا نمضي قدما ونفعل ذلك .
pipx install Basedpyright
poetry env info --pathللتحقق من السلامة، فكر في تشغيل
Basedpyright --version
poetry env info --pathيتيح لك تثبيت Basedpyright أيضًا الوصول إلى الأمر Basedpyright-langserver، ولكن هذا ليس مكتوبًا حقًا للمستخدمين للتفاعل معه، لذلك إذا قمت بتشغيل Basedpyright-langserver أو Basedpyright-langserver --version أو شيء من هذا القبيل، فستحصل على تتبع مكدس Nodejs.
تكوين emacs لاستخدام Basedpyright-langserver
~/.emacs أو ~/.emacs.d/init.el وأضف ما يلي:
؛؛ الإعدادات العالمية lsp (إضافة خطاف "بعد الخطاف" في وضع الشركة العالمي) (setq lsp-التخمين التلقائي لجذر t) ؛؛ بيثون (يتطلب وضع lsp) (setq lsp-pyright-langserver-command "basedpyright") (خطاف إضافة "وضع الثعبان" (lambda () (يتطلب "lsp-pyright) (lsp)))poetry env info --pathيجب أن يكون هذا كل ما تحتاجه.
نصيحة عامة لتصحيح وضع lsp
~/.emacs.d/.lsp-session-v1. سيكون لهذا تأثير في جعل الوضع lsp ينسى جذر المشروع ويجبره على البحث عنه مرة أخرى.
ترميز سعيد!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3