我对当前的 Python emacs 设置非常满意,但我发现设置有点棘手。我将在这里为我未来的自己和任何其他正在寻找可靠的 emacs 配置的 Pythonista 记录我的设置。
为什么基于pyright?
到目前为止,我一直在命令行上使用 mypy --strict 来满足我所有的类型检查需求,但即使对于非常小的代码库,mypy 也相当慢,即使在 --strict 模式下,它也不如尽可能严格。它也不是我的 emacs 设置所需要的语言服务器。
basedpyright 是 Pyright 的一个分支,在检查和可靠性方面都有一些出色的改进。它是一个快速且极其严格的类型检查器,此外还具有一些良好的 linting 功能。
我遇到的唯一缺点是它不像 mypy 与 AWS 的 boto3-stubs 客户端一样好用,而且它使用非标准的 #pyright:ignore comments 而不是标准的 #type:ignore comments,但是我可以忍受这些问题,支持严格的类型检查体验。
配置您的 Poetry 项目以使用 basedpyright 或 Pyright
如果您有使用 Poetry 的现有项目,您将需要稍微调整一下您的虚拟环境。
转到每个项目的根目录并运行以下命令:
poetry config --local virtualenvs.in-project true
这将创建一个 poetry.toml 文件(如果尚不存在)并添加相应的设置。
但是,这不会实际移动您现有的虚拟环境。为了使此更改生效,您必须删除现有的虚拟环境,您可以通过运行
找到它poetry env info --path
不要忘记将 .venv 路径添加到 .gitignore 以及您可能使用的任何其他工具(如 pycodestyle)的配置,否则您最终会得到真是一团糟。
接下来,您应该向 pyproject.toml 添加一个配置部分,以告诉 basedpyright 在哪里查找您的虚拟环境。
[tool.pyright] venv=".venv" venvPath="."
如果与我不同,您还没有感觉到不同 Python 开发工具的配置文件完全超载,您也可以在 pyrightconfig.json 文件中执行此操作。
安装 basedpyright 作为语言服务器
basedpyright 相对于 Pyright 的一个非常好的一点是,它将 NodeJS 依赖项构建为轮子,因此您可以放心,无论您是否安装了 NodeJS,basedpyright 都应该在您的计算机上运行。
为了隔离,通常最好使用 pipx 而不是 pip 安装可执行 Python 包。让我们继续吧。
pipx install basedpyright
为了进行健全性检查,请考虑运行
basedpyright --version
安装basedpyright还可以让你访问basedpyright-langserver命令,但这并不是真正为用户交互而编写的,所以如果你运行basedpyright-langserver或basedpyright-langserver --version或其他东西,你将获得一个nodejs堆栈跟踪。
配置 emacs 使用 basedpyright-langserver
我假设您作为读者知道如何从 MELPA 安装软件包并且有首选的方法。这是您需要的所有软件包:
- 公司
- lsp 模式
- lsp-pyright
- lsp-ui
- python 模式
安装这些,然后打开 ~/.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)))
这应该就是您所需要的。
调试 lsp 模式的一般技巧
如果你觉得你已经正确设置了所有内容,但仍然无法通过 lsp 模式找到 Poetry 中应该可用的包,你可以尝试的一件事就是进入并删除你的 ~/.emacs.d/.lsp-session-v1。这将导致 lsp-mode 忘记项目根目录并强制它再次查找它。
快乐编码!
我希望这能让您在 Python 开发环境方面有一个良好的开端。如果您有任何疑问,好吧,我是这一切的初学者,我可能无法帮助您,但如果您有任何在 emacs 中使用 basedpyright 的额外提示或技巧,我会考虑合并请求。
以上是使用 `basedpyright-langserver` 实现 Python 和 Poetry 的 Emacs的详细内容。更多信息请关注PHP中文网其他相关文章!

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

Dreamweaver CS6
视觉化网页开发工具