VSCode 在选择解释器选项中不显示诗歌虚拟环境

use*_*363 26 python visual-studio-code python-poetry

我需要帮助。无论我尝试什么,VSCode 都不会找到诗歌 virtualenv 解释器。

使用官方文档中$ curl解释的标准方法安装了诗歌 Python 包管理器。

开始了一个项目$ poetry new finance-essentials_37-64,安装了诗歌环境$ poetry install

所以现在我可以通过以下方式看到我确实有一个虚拟环境:

Jaepil@Jaepil-PC MINGW64 /e/VSCodeProjects/finance_essentials_37-64 $ poetry env list 
>> finance-essentials-37-64-SCQrHB_N-py3.7 (Activated)
Run Code Online (Sandbox Code Playgroud)

这个 virtualenv 安装在:C:\Users\Jaepil\AppData\Local\pypoetry\Cache\virtualenvs,它有finance-essentials-37-64-SCQrHB_N-py3.7目录。

但是,VSCode 无法在其“选择解释器”命令中找到此 virtualenv。我只看到一堆 Anaconda 和 Pipenv 环境,但没有看到我刚刚制作的诗歌环境的解释器。

我也按照这里的建议添加"python.venvPath": "~/.cache/pypoetry/virtualenvs",到我的,但无济于事。还是不行。settings.json

我也尝试了绝对路径,通过添加"python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs",到相同的设置,但它也不起作用。

VSCode 设置参考声明它具有python.poetryPath默认值,但它似乎也不起作用。"poetry"在这种情况下,我应该更改默认值吗?

python.poetryPath

“诗歌”

指定 Poetry 依赖管理器可执行文件的位置(如果已安装)。默认值“poetry”假定可执行文件在当前路径中。Python 扩展使用此设置在 Poetry 可用且工作区文件夹中有一个 Poetry.lock 文件时安装包。

我使用的是 64 位 Windows 10 专业版并在系统上安装了 Python 3.7.6。

PS C:\Users\Jaepil> python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32
Run Code Online (Sandbox Code Playgroud)

小智 61

你只需要在你的 shell 中输入:

poetry config virtualenvs.in-project true
Run Code Online (Sandbox Code Playgroud)

virtualenv 将在项目路径中创建,vscode 将识别。


如果您已经创建了项目,则需要重新创建 virtualenv 以使其出现在正确的位置:

poetry env list  # shows the name of the current environment
poetry env remove <current environment>
poetry install  # will create a new environment using your updated configuration
Run Code Online (Sandbox Code Playgroud)

  • 想要补充一点,我必须重新加载 vscode 窗口,然后在执行此操作后选择解释器。否则,由于某种原因,vscode 将无法在 .venv 中找到 python。 (3认同)
  • 实际上这很好我喜欢将我的 venv 放在与项目相同的位置 (2认同)
  • 明白了。我能够运行“poetry env remove [现有环境]”,然后当我下次构建它时,它会在正确的位置构建新的环境。谢谢你! (2认同)

Bre*_*non 34

您需要"python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs"在您的设置中进行设置(您尝试的那个是针对 UNIX 的)。

您还可以 https://github.com/microsoft/vscode-python/issues/8372帮助优先添加 Poetry 虚拟环境支持到 Python 扩展。


小智 13

您可以将 virtualenvs 文件夹添加到"python.venvFolders"VS Code 全局设置中。

就像 Windows 上的那样:

"python.venvFolders": [
    "C:\\Users\\User\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\"
  ]
Run Code Online (Sandbox Code Playgroud)

获取您运行的路径,poetry config virtualenvs.path正如 @Aipi 评论的那样

  • Linux:`~/.cache/pypoetry/virtualenvs` (4认同)
  • 显示路径: `poetry config virtualenvs.path` (4认同)

BLT*_*BLT 13

VS Code 中 Python 扩展的设置已更改。在将 VS Code settings.json 文件中的日期python.pythonPath设置(您的可能是python.venvPath)更改为后,我能够再次为我的解释器/ipynb 内核选择 Poetry 虚拟环境。python.defaultInterpreterPath

注意:我的工作计算机是 Mac,但我希望它适用于 Windows。要查找 ~path,请poetry env info --path在适当的项目文件夹下输入 CLI,然后添加安装 Python 的子目录信息。在 MacOS/Linux 上,以“/bin/python”结尾;在 Windows 上,“python.exe”。https://code.visualstudio.com/docs/python/environments#_manually-specify-an-interpreter了解更多信息。

{
    "python.defaultInterpreterPath": "/Users/myname/Library/Caches/pypoetry/virtualenvs/projectname-randomnumbers-py3.9/bin/python",
}
Run Code Online (Sandbox Code Playgroud)