python requirements.txt

python - En Requirements.txt, ¿qué significa tilde igual a(~=)?



(4)

Una cláusula de lanzamiento compatible consiste en el operador de lanzamiento compatible ~ = y un identificador de versión. Coincide con cualquier versión candidata que se espera sea compatible con la versión especificada.

Puede leer más aquí: https://www.python.org/dev/peps/pep-0440/#compatible-release

En el archivo Requirements.txt para una biblioteca de Python que estoy usando, uno de los requisitos se especifica como:

mock-django~=0.6.10

¿Qué significa ~= ?


Ese es el especificador de versión '' versión compatible''.

Es equivalente a: mock-django >= 0.6.10, == 0.6.* , Y es una forma ordenada de hacer coincidir una versión que se espera sea compatible. En un lenguaje sencillo, es un poco como decir: "Necesito una versión de mock-django que sea al menos tan nueva como 0.6.10, pero no tan nueva como para que no sea compatible con ella".

Si no está seguro de todas estas cosas sobre el número de versión, ¡una revisión rápida del esquema de la versión PEP440 debería resolverlo!


Significa que seleccionará la última versión del paquete, mayor o igual a 0.6.10, pero aún en la versión 0.6. *, Por lo que no descargará 0.7.0 por ejemplo. Asegura que obtendrá correcciones de seguridad pero mantendrá la compatibilidad con versiones anteriores, si el mantenedor del paquete respeta el control de versiones semántico (lo que indica que los cambios de ruptura deben ocurrir solo en las versiones principales).

O, como dice PEP 440:

Para un identificador de liberación VN dado, la cláusula de liberación compatible es aproximadamente equivalente al par de cláusulas de comparación:

>= VN, == V.*


~ = significa una versión compatible. No menos de 0.6.10 y superior (0.6. *).