使用 Poetry 设置 Emacs Elpy
Setting up Emacs Elpy with Poetry
如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中而不是系统范围内安装的开发依赖项,如 Black、Jedi 和 flake8?
使用 poetry.el
Emacs package 并通过 add-hook
将其 elpy-mode-hook
启用 poetry-tracking-mode
。 Elpy 将自动检测 Poetry 虚拟环境并检查该环境中的那些开发工具。
2021 年 1 月更新:我已经停止使用 Elpy 并切换到 lsp-mode
和 lsp-python-ms
- 这是一种更好的开发体验。唯一需要注意的是,它只能发现项目本地的 virtualenvs,因此必须将 Poetry 配置为在本地创建 venvs (poetry config virtualenvs.in-project true
)。
如果您使用emacs -nw
,那么另一个选项是
- 在poetry项目中安装virtualenvwrapper。即运行
poetry add -D virtualenvwrapper
.
- 安装你需要的elpy依赖。
M-x elpy-config' to find dependencies. So
诗歌添加 -D jedi rope autopep8 yapf black flake8`。这也可以在 elpy 提示您时完成,但它可能会作为普通依赖项安装,而不仅仅是开发依赖项。
- 添加
(setq elpy-rpc-virtualenv-path 'current)
以便 elpy 使用 poetry virtual env for Virtualenv, Interactive Python, RPC virtual env.
- 通过诗歌启动 emacs
poetry run emacs -nw
您需要为每个诗歌项目执行此操作。应该有办法在 pyenv 中全局安装其中一些,并让 poetry 和项目 virtual env 接收它。但是,为每个项目执行此操作会保持依赖关系隔离,即使对于开发人员也是如此。
如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中而不是系统范围内安装的开发依赖项,如 Black、Jedi 和 flake8?
使用 poetry.el
Emacs package 并通过 add-hook
将其 elpy-mode-hook
启用 poetry-tracking-mode
。 Elpy 将自动检测 Poetry 虚拟环境并检查该环境中的那些开发工具。
2021 年 1 月更新:我已经停止使用 Elpy 并切换到 lsp-mode
和 lsp-python-ms
- 这是一种更好的开发体验。唯一需要注意的是,它只能发现项目本地的 virtualenvs,因此必须将 Poetry 配置为在本地创建 venvs (poetry config virtualenvs.in-project true
)。
如果您使用emacs -nw
,那么另一个选项是
- 在poetry项目中安装virtualenvwrapper。即运行
poetry add -D virtualenvwrapper
. - 安装你需要的elpy依赖。
M-x elpy-config' to find dependencies. So
诗歌添加 -D jedi rope autopep8 yapf black flake8`。这也可以在 elpy 提示您时完成,但它可能会作为普通依赖项安装,而不仅仅是开发依赖项。 - 添加
(setq elpy-rpc-virtualenv-path 'current)
以便 elpy 使用 poetry virtual env for Virtualenv, Interactive Python, RPC virtual env. - 通过诗歌启动 emacs
poetry run emacs -nw
您需要为每个诗歌项目执行此操作。应该有办法在 pyenv 中全局安装其中一些,并让 poetry 和项目 virtual env 接收它。但是,为每个项目执行此操作会保持依赖关系隔离,即使对于开发人员也是如此。