VSCode doesn't show poetry virtualenvs in select interpreter option

PythonVisual Studio-CodePython Poetry

Python Problem Overview


I need help. VSCode will NEVER find poetry virtualenv interpreter no matter what I try.

Installed poetry Python package manager using a standard $ curl method as explained in the official documentation.

Started a project by $ poetry new finance-essentials_37-64, installed poetry environment with $ poetry install.

So now I can see that I indeed have a virtual environment by:

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

and this virtualenv is installed at: C:\Users\Jaepil\AppData\Local\pypoetry\Cache\virtualenvs, which has finance-essentials-37-64-SCQrHB_N-py3.7 directory.

However, VSCode is unable to find this virtualenv in its 'select interpreter' command. I only see a bunch of Anaconda and Pipenv environments but not the poetry environment's interpreter that I've just made.

I also added "python.venvPath": "~/.cache/pypoetry/virtualenvs", to my settings.json as suggested in here, but to no avail. Still doesn't work.

I also tried an absolute path, by adding "python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs", to the same settings, but it also doesn't work.

VSCode settings reference states that it has python.poetryPath as a default but it doesn't seem to work either. Should I change the default value "poetry" in this case?

> python.poetryPath > > "poetry" > > Specifies the location of the Poetry dependency manager executable, if > installed. The default value "poetry" assumes the executable is in the > current path. The Python extension uses this setting to install > packages when Poetry is available and there's a poetry.lock file in > the workspace folder.

I'm on Windows 10 pro 64bit & Has Python 3.7.6 installed on the system.

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

Python Solutions


Solution 1 - Python

You just need to type in your shell:

poetry config virtualenvs.in-project true

The virtualenv will be created inside the project path and vscode will recognize.


If you already have created your project, you need to re-create the virtualenv to make it appear in the correct place:

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

Solution 2 - Python

You need to set "python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs" in your settings (the one you tried is for UNIX).

You can also  https://github.com/microsoft/vscode-python/issues/8372 to help prioritize adding Poetry virtual environment support to the Python extension.

Solution 3 - Python

You can add your virtualenvs folder to "python.venvFolders" in vs code global settings.

Like that for Windows:

"python.venvFolders": [
    "C:\\Users\\User\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\"
  ]

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser8491363View Question on Stackoverflow
Solution 1 - PythonChristian HView Answer on Stackoverflow
Solution 2 - PythonBrett CannonView Answer on Stackoverflow
Solution 3 - PythonvodkarView Answer on Stackoverflow