【问题标题】:Setting up Emacs Elpy with Poetry用诗歌设置 Emacs Elpy
【发布时间】:2020-10-07 19:37:02
【问题描述】:

我如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中的开发依赖项,例如 Black、Jedi 和 flake8,而不是安装在系统范围内的依赖项?

【问题讨论】:

    标签: emacs python-poetry elpy


    【解决方案1】:

    poetry.el Emacs packagepoetry-tracking-mode 一起使用,通过add-hook 将其启用elpy-mode-hook。 Elpy 将自动检测 Poetry 虚拟环境并检查该环境中的那些开发工具。

    2021 年 1 月更新:我已经停止使用 Elpy 并切换到 lsp-modelsp-python-ms - 这是一种更好的开发体验。唯一需要注意的是它只能发现项目本地的 virtualenvs,因此必须将 Poetry 配置为在本地创建 venvs (poetry config virtualenvs.in-project true)。

    【讨论】:

    • 能否请您补充一下诗歌应该如何配置?我也在使用这个包,但无法让 lsp 正确处理诗歌
    • 我的 init.el 在 GitHub here 上,我添加了一个钩子来激活 poetry-tracking-modepython-mode-hook,它本身绑定到 lsp-mode 和 lsp-pyright。我之前也使用过mspyls
    【解决方案2】:

    如果你使用emacs -nw,那么另一种选择是

    • 在诗歌项目中安装 virtualenvwrapper。那是运行poetry add -D virtualenvwrapper
    • 安装所需的 elpy 依赖项。 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 拾取它。但是,为每个项目执行此操作会使依赖项保持隔离,即使对于开发人员也是如此。

    【讨论】:

      猜你喜欢
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多