【发布时间】:2020-10-07 19:37:02
【问题描述】:
我如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中的开发依赖项,例如 Black、Jedi 和 flake8,而不是安装在系统范围内的依赖项?
【问题讨论】:
标签: emacs python-poetry elpy
我如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中的开发依赖项,例如 Black、Jedi 和 flake8,而不是安装在系统范围内的依赖项?
【问题讨论】:
标签: emacs python-poetry elpy
将poetry.el Emacs package 与poetry-tracking-mode 一起使用,通过add-hook 将其启用elpy-mode-hook。 Elpy 将自动检测 Poetry 虚拟环境并检查该环境中的那些开发工具。
2021 年 1 月更新:我已经停止使用 Elpy 并切换到 lsp-mode 和 lsp-python-ms - 这是一种更好的开发体验。唯一需要注意的是它只能发现项目本地的 virtualenvs,因此必须将 Poetry 配置为在本地创建 venvs (poetry config virtualenvs.in-project true)。
【讨论】:
poetry-tracking-mode 到 python-mode-hook,它本身绑定到 lsp-mode 和 lsp-pyright。我之前也使用过mspyls。
如果你使用emacs -nw,那么另一种选择是
poetry add -D virtualenvwrapper。M-x elpy-config' to find dependencies. So poetry add -D jedi rod autopep8 yapf black flake8`。这也可以在 elpy 提示您时完成,但它可能会作为普通依赖项安装,而不仅仅是 dev 依赖项。(setq elpy-rpc-virtualenv-path 'current) 以便 elpy 将诗歌虚拟环境用于 Virtualenv、交互式 Python、RPC 虚拟环境。poetry run emacs -nw启动emacs
您需要为每个诗歌项目执行此操作。应该有办法在 pyenv 中全局安装其中一些,并让诗歌和项目虚拟 env 拾取它。但是,为每个项目执行此操作会使依赖项保持隔离,即使对于开发人员也是如此。
【讨论】: