¿Qué significan = y ==, etc. cuando se especifican los números de versión del paquete conda y pip en archivos YAML?

Aug 17 2020

Usamos archivos YAML para especificar nuestros entornos conda y pip. En ellos podemos especificar qué números de versión necesitamos usando, por ejemplo, cualquiera de estas líneas

- cudatoolkit=10.2.89
- cudatoolkit=10.2.*
- cudatoolkit==10.2.89
- cudatoolkit==10.2.*

Tengo problemas para encontrar la documentación de qué significa ==vs. =en estos requisitos de paquete y qué otras restricciones podrían escribirse y cómo.

¿Cuál es la diferencia en este ajuste entre =y ==? ¿Estos significados difieren entre conda y pip? ¿Dónde está la documentación correcta (Google y Bing no son buenos para buscar símbolos como esos)?

Respuestas

3 jfahne Aug 17 2020 at 21:09

En PEP 440 , los operadores de especificación de versión de pip incluyen solo ==los medios para coincidir con la versión exacta especificada. Las especificaciones de coincidencia de paquetes de Conda incluyen ==que es igual a PEP 440 ==para la especificación de la versión exacta y su propio operador, =que es para la coincidencia de paquetes difusos.