En la requirements.txt
biblioteca de Python que estoy usando, uno de los requisitos se especifica como:
mock-django~=0.6.10
¿Qué ~=
significa?
En la requirements.txt
biblioteca de Python que estoy usando, uno de los requisitos se especifica como:
mock-django~=0.6.10
¿Qué ~=
significa?
Respuestas:
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á la 0.7.0, por ejemplo. Garantiza que obtendrá correcciones de seguridad pero mantendrá la compatibilidad con versiones anteriores, si el encargado del paquete respeta el control de versiones semántico (que establece que los cambios importantes deben ocurrir solo en las versiones principales).
O, como dice PEP 440:
Para un identificador de liberación dado VN, la cláusula de liberación compatible es aproximadamente equivalente al par de cláusulas de comparación:
>= V.N, == V.*
Ese es el especificador de versión de 'lanzamiento 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 que sea compatible. En términos sencillos, es un poco como decir: "Necesito una versión de mock-django que sea al menos tan nueva como la 0.6.10, pero no tan nueva como para que no sea compatible con ella".
Si no está seguro acerca de todas estas cosas sobre el número de versión, ¡un vistazo rápido al esquema de versión de PEP440 debería resolverlo!
Una cláusula de liberación compatible consta del operador de liberación compatible ~ = y un identificador de versión. Coincide con cualquier versión candidata que se espera que sea compatible con la versión especificada.
Puede leer más aquí: https://www.python.org/dev/peps/pep-0440/#compatible-release