Strange dependency specifier behavior when using export
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- build-system, tooling
Línea de trabajo
Comienza con las declaraciones de dependencias en pyproject.toml y reproduce el problema usando poetry export --dev --format=requirements.txt. Después, prueba pip install --constraint=requirements.txt moto en un entorno virtual limpio. Se considera terminado cuando el marcador cryptography exportado y los hashes ya no provocan el fallo de pip por --require-hashes para las combinaciones de dependencias descritas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
- I am on the latest Poetry version.
- I have searched the issues of this repo and believe that this is not a duplicate.
- If an exception occurs when executing a command, I executed it again in debug mode (
-vvvoption).
- OS version and name: macos 10.15.7
- Poetry version: 1.1.4
Issue
This is related to python-poetry/poetry-export-plugin#30 and comes from this comment: https://github.com/python-poetry/poetry/issues/3160#issuecomment-726236225
Now though, I have a clear example of what's happening in the requirements.txt file that is breaking the install.
Here is the relevant portion of a boilerplate pyproject.toml file from poetry new
[tool.poetry.dependencies]
python = "~3.8"
[tool.poetry.dev-dependencies]
moto = "1.3.14"
python-semantic-release = "^6.4"
# cryptography = "^3.2.1"
Here is the relevant output of poetry export --dev --format=requirements.txt
cryptography==3.2.1; python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "linux" or sys_platform == "linux" and python_version >= "3.6" and python_full_version >= "3.5.0" \
--hash=sha256:6dc59630ecce8c1f558277ceb212c751d6730bd12c80ea96b4ac65637c4f55e7 \
...
If I create a new identical clean virtual environment (replicating a pipeline setup that uses nox or tox) and run pip install --constraint=requirements.txt moto, I will get something like this:
$ pip install --constraint=requirements.txt moto
...
ERROR: In --require-hashes mode, all requirements must have their versions pinned with ==. These do not:
cryptography>=2.3.0 from https://files.pythonhosted.org/packages/c4/78/6c28c899181c395d8e07778110caff21248ba97774e567e7f7895951d92e/cryptography-3.2.1-cp35-abi3-macosx_10_10_x86_64.whl#sha256=bd717aa029217b8ef94a7d21632a3bb5a4e7218a4513d2521c2a2fd63011e98b (from moto==1.3.14->-c requirements.txt (line 387))
If I uncomment the cryptography dependency, the relevant line in the requirements.txt file will become:
cryptography==3.2.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") \
--hash=sha256:6dc59630ecce8c1f558277ceb212c751d6730bd12c80ea96b4ac65637c4f55e7 \
...
which is a dependency pattern that looks much nicer and more sane. And the pip install ends up working fine.
Alternatively, if I remove the dependency on python-semantic-release and leave cryptography commented out, this also works. This problem appears to come from some combination a) the dependency solve between these two packages that use cryptography directly or through another dependency, b) the writing of the lock file, and c) the exporting of the lock file to requirements.
- Lenguaje dominante
- Python
- Estrellas
- 336
- Forks
- 60
- Merge medio
- 10 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python-poetry/poetry-plugin-export
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
-
Does not installAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
python-poetry/poetry-plugin-export#341 · 5 comentarios · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
python-poetry/poetry-plugin-export#340 · 1 comentario ·
-
Feature request - Add a comment to auto-generated files stating the files are auto-generatedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 52/100
Todos los issues de python-poetry/poetry-plugin-export
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
FinanceFlash/unvibecode#509 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
FAIRmat-NFDI/nomad-distro-dev#161 ·
-
bug v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
modelcontextprotocol/python-sdk#3821 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug severity:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 2 días
-
Log-odds calibration uses upper middle score instead of median for even candidate setsPosiblemente ocupada @flysheep-ai la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día