如何使用 Windows + WSL2 在 Pycharm 中配置 Poetry 环境?

aon*_*aon 16 python pycharm python-poetry wsl-2 ubuntu-20.04

TL;DR:无法使用 WSL 中的现有 Poetry 环境在 PyCharm (Windows) 上配置 Python 解释器。当尝试在 下设置 Poetry 环境路径时Add Python Interpreter > Poetry Environment > Existing Environment,所需的 Python 可执行文件根本不显示。我究竟做错了什么?

=================================================== ==

详细信息:

我在 Windows 11 上使用 PyCharm Pro 2021.3,Python 在 WSL2 (Ubuntu 20.04) 上运行。我正在尝试为我在 WSL2 上创建的现有 Poetry 环境添加一个 python 解释器,但它似乎不起作用。

PyCharm 目前对 Poetry 的支持是通过采用这个插件。根据我从插件的官方文档中收集到的信息,为了使用现有的 Poetry 环境定义解释器,我转到Python Interpreter > Add > Poetry Environment,选择Existing environment,然后输入该特定环境的路径: 在此输入图像描述

为了找到该环境的路径,我运行“ poetry env info ”,它给出了以下模式的路径:

\\wsl$\Ubuntu-20.04\home\$USER$\.cache\pypoetry\virtualenvs\my-pretty-project-<some-hash>-py3.8\

在环境中运行时which python,我看到 python 可执行文件位于:

\\wsl$\Ubuntu-20.04\home\$USER$\.cache\pypoetry\virtualenvs\my-pretty-project-<some-hash>-py3.8\bin\python

但是,当我浏览到 PyCharm 中的该位置时,Python 文件 simple 不会显示。该bin目录显示为空 - 正如此问题中所述。然而 - 与上述问题中描述的类似- 如果我尝试将 WSL 的默认解释器路径重新定义为 Poetry 环境的路径,Python 可执行文件就在那里并启动: 在此输入图像描述

(遗憾的是,上述问题中描述的解决方案不适用于我的问题,因为我已经在使用 Poetry 环境的补丁)。

我该怎么做才能使这项工作成功?

pep*_*uan -2

让我说清楚:您希望 PyCharm for Windows 在 WSL 中执行 Python 二进制文件?

那不可能发生。

WSL 中的二进制文件是 Windows 无法执行的“ELF”二进制文件(在 WSL 之外)。如果 virtualenv 是由 WSL 中的诗歌创建的,它将包含 ELF Python 二进制文件。这就是为什么 PyCharm for Windows 永远不会接受它的原因。因为最终 PyCharm for Windows 依赖于 Windows 来执行二进制文件,只要您不选择 WSL 选项

显式选择“WSL”选项向 PyCharm 表明,对于此特定 virtualenv,您希望 PyCharm 使用 WSL 调用二进制文件。

解决方案是在 Windows 中重新创建 virtualenv,或者仅使用“WSL”选项,但您必须通过 WSL shell 手动管理诗歌。