Cómo resolver el error de dependencia de la poesía de Python

4

Al intentar instalar las dependencias de Python con Poetry, aparece el siguiente error:

$ poetry install                                                                                                    
The currently activated Python version 2.7.15 is not supported by the project (>=3.6).
Trying to find and use a compatible version.
Using python3 (3.7.4)
Skipping virtualenv creation, as specified in config file.
Updating dependencies
Resolving dependencies... (1.7s)

[SolverProblemError]
The current project's Python requirement (>=3.6) is not compatible with some of the required packages Python requirement:
  - pre-commit requires Python >=3.6.1

Because no versions of pre-commit match >2.2.0,<3.0.0
 and pre-commit (2.2.0) requires Python >=3.6.1, pre-commit is forbidden.
So, because my-proj depends on pre-commit (^2.2.0), version solving failed.

Aquí está mi entorno:

$ python3 --version                                                                                                 
Python 3.7.4
$ poetry --version                                                                                                  
Poetry version 1.0.5
$ pre-commit --version                                                                                             
pre-commit 2.2.0

Y una muestra de mi pyproject.toml:

...
[tool.poetry.dependencies]
python = ">=3.6"
...

[tool.poetry.dev-dependencies]
pre-commit = "^2.2.0"
...

Intenté cambiar la versión de python en pyproject a 3.7, pero no cambié el resultado. Y si elimino la dependencia previa a la confirmación, tengo el mismo error en otra dependencia.

No sé qué debo buscar: actualizar / degradar las versiones, versiones incompatibles

6
  • bueno, ¿y si lo cambia a ">=3.6.1"in pyproject.toml?
    Arne
    27/03/20 a las 11:34
  • Si lo cambio, >=3.6.1parece que ahora se compara con python 2.7:The current project's Python requirement (2.7.15) is not compatible with some of the required packages Python requirement: - pre-commit requires Python >=3.6.1 27/03/20 a las 12:38
  • después de cambiar algo en la poetry.toolsección, debe reinstalar la aplicación para que Poesía pueda reconstruir el virtualenv con la nueva especificación. Además, a partir de sus mensajes de error, parece que tiene algún tipo de entorno de Python activado virtualenv, tal vez ejecutar deactivateantes de ejecutar poetry install.
    Arne
    27 mar.20 a las 13:07
  • 1
    Sin embargo, esto no es realmente un problema relacionado con la programación o una herramienta, es su configuración local la que le está causando problemas. Cualquier ayuda que se brinde aquí finalmente se reducirá a "tratar de hacer una configuración limpia, siguiendo las instrucciones de la poesía lo más cerca posible".
    Arne
    27 mar.20 a las 13:08
  • 1
    Tienes razón @ Arne. Lo ejecuté poetry config virtualenvs.create falsehace algún tiempo y el virtualenv no se creó correctamente para el proyecto. Después de ejecutar poetry config virtualenvs.create truetodo funciona bien. 27/03/20 a las 13:37
3

Como lo mencionó @Arne en los comentarios, parecía ser un problema virtualenv.

Corrí poetry config virtualenvs.create falseanteriormente para otro proyecto y la configuración se estableció a nivel global. Ejecutar el comando inverso poetry config virtualenvs.create trueresolvió el problema (tal vez agregarlo --localpara configurarlo en proyectos individuales).