Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿Poetry usa el Python equivocado? Demuestra el intérprete antes de rehacer el entorno

Compara el ejecutable del shell, el entorno del proyecto en Poetry y sys.executable, prefix y base_prefix en ejecución. Después revisa la restricción del proyecto y el alcance de la configuración.

Ilustración editorial original de una persona que compara tres entornos de intérprete anónimos en un portátil.
Ilustración original: compara el shell, el entorno de Poetry y la ejecución antes de sustituir nada. Watch at Ease

Aunque el indicador del terminal parezca correcto, Poetry puede elegir un entorno almacenado, uno ya activado o el intérprete usado para instalar Poetry. La reparación segura demuestra primero cada ruta y cambia solo la capa incorrecta.

Conserva la prueba antes de cambiar nada

No borres .venv por intuición. Registra el Python que resuelve el shell, la ruta y el ejecutable del entorno de Poetry, y sys.executable, sys.prefix y sys.base_prefix dentro de poetry run. Las diferencias separan un problema del shell, de la selección de Poetry o del proceso realmente iniciado.

Lee las tres rutas como pruebas distintas

El python del shell muestra el resultado de PATH; poetry env info --executable muestra el intérprete asociado al proyecto; sys.executable muestra lo que se ejecutó. prefix y base_prefix indican si existe un entorno virtual y su instalación base. VIRTUAL_ENV no es decisivo porque el entorno puede usarse sin activación.

Comprueba primero la restricción del proyecto

Lee requires-python o la restricción Python de Poetry y compara la versión exacta del candidato. Poetry no instala automáticamente todas las versiones necesarias. Tras confirmar compatibilidad, selecciona una ruta completa o poetry env use 3.12. Si no hay candidato, instálalo o expónlo con las herramientas normales de la plataforma.

Audita el alcance de configuración y el entorno existente

Revisa poetry config --list, virtualenvs.create, virtualenvs.in-project, virtualenvs.path, virtualenvs.use-poetry-python y las variables de CI. Activar in-project no mueve automáticamente un entorno ya almacenado a .venv. Guarda la ruta anterior antes de eliminar nada.

Aplica la reparación mínima que demuestra la evidencia

Si solo falla la ruta del shell, corrige PATH o el gestor de versiones. Si Poetry está asociado al entorno incorrecto, usa env use con el intérprete verificado. Si el entorno externo activado es intencional, Poetry no creará otro. Para CI, compara PATH, activación, variables de configuración y la salida de poetry run con el equipo local.

Verifica y conserva una vía de retorno

Repite los mismos comandos. El ejecutable de Poetry y sys.executable bajo poetry run deben señalar el entorno objetivo; sys.prefix debe señalar el entorno y sys.base_prefix su intérprete base. Ejecuta el fallo mínimo, poetry check y las pruebas, y guarda las rutas antes y después.

Ilustración técnica original de rutas de intérpretes anónimos a través de un proyecto y un entorno virtual.
Ilustración técnica original: la ruta activa, el entorno del proyecto y el intérprete base son pruebas distintas. Watch at Ease