VSCode doesn't show poetry virtualenvs in select interpreter option
PythonVisual Studio-CodePython PoetryPython 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\\"
]