VSCode no muestra poesía virtualenvs en la opción de selección de intérprete

3 minutos de lectura

Necesito ayuda. VSCode NUNCA encontrará el intérprete de virtualenv de poesía sin importar lo que intente.

Se instaló el administrador de paquetes de Python de poesía usando un estándar $ curl método como se explica en la documentación oficial.

Empezó un proyecto de $ poetry new finance-essentials_37-64entorno de poesía instalada con $ poetry install.

Así que ahora puedo ver que de hecho tengo un entorno virtual por:

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

y este virtualenv está instalado en: C:\Users\Jaepil\AppData\Local\pypoetry\Cache\virtualenvsque tiene finance-essentials-37-64-SCQrHB_N-py3.7 directorio.

Sin embargo, VSCode no puede encontrar este virtualenv en su comando ‘seleccionar intérprete’. Solo veo un montón de entornos de Anaconda y Pipenv, pero no el intérprete del entorno de poesía que acabo de crear.

también agregué "python.venvPath": "~/.cache/pypoetry/virtualenvs", para mi settings.json como se sugiere en aquí, pero fue en vano. Todavía no funciona.

También probé una ruta absoluta, agregando "python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs", a la misma configuración, pero tampoco funciona.

Referencia de configuración de VSCode afirma que tiene python.poetryPath por defecto, pero tampoco parece funcionar. ¿Debo cambiar el valor predeterminado? "poetry" ¿en este caso?

python.poetryPath

“poesía”

Especifica la ubicación del ejecutable del administrador de dependencias de poesía, si está instalado. El valor predeterminado “poesía” asume que el ejecutable está en la ruta actual. La extensión de Python usa esta configuración para instalar paquetes cuando Poetry está disponible y hay un archivo poet.lock en la carpeta del espacio de trabajo.

Estoy en Windows 10 pro de 64 bits y tengo Python 3.7.6 instalado en el sistema.

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

Avatar de usuario de Christian H
cristian h

Solo necesitas escribir en tu caparazón:

poetry config virtualenvs.in-project true

El virtualenv se creará dentro de la ruta del proyecto y vscode lo reconocerá.


Si ya ha creado su proyecto, debe volver a crear el virtualenv para que aparezca en el lugar correcto:

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

  • En realidad, esto es bastante bueno. Me gusta mantener mi venv en el mismo lugar que el proyecto.

    – señor Wiecek

    2 de noviembre de 2020 a las 18:39

  • sí, también prefiero mantener mi venv dentro de la raíz del proyecto @mrWiecek

    – Christian H.

    19 de noviembre de 2020 a las 3:26

  • Desafortunadamente, al usar la concha de pescado, poetry shell se interrumpe cuando hay espacios en el nombre de ruta completo. Si está trabajando en un directorio con ningún espacios en cualquier ningún director antepasado, entonces la poesía no funcionará.

    – BolígrafoBen

    17 de febrero de 2021 a las 15:51

  • @Goodies sí, esto solo afecta a los entornos futuros, no a los existentes. No estoy seguro de si los espacios están permitidos para usted; mi única experiencia fue con conchas de pescado en una Mac.

    – BolígrafoBen

    18 de febrero de 2021 a las 5:17

  • Comprendido. pude correr poetry env remove [existing environmet] y luego, cuando lo construí la próxima vez, creó el nuevo env en la ubicación correcta. ¡Gracias!

    – Golosinas

    18 de febrero de 2021 a las 6:17


Necesitas configurar "python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs" en su configuración (la que probó es para UNIX).

Tu también puedes 👍 https://github.com/microsoft/vscode-python/issues/8372 para ayudar a priorizar la adición de compatibilidad con el entorno virtual Poetry a la extensión de Python.

  • Gracias. Parece que esa es la única manera a partir de ahora.

    – usuario8491363

    3 de abril de 2020 a las 3:48

  • Hay otra manera 🙂

    – Christian H.

    19 oct 2020 a las 20:14

Puede agregar su carpeta virtualenvs a "python.venvFolders" en la configuración global del código vs.

Así para Windows:

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

¿Ha sido útil esta solución?