Soy un principiante en programación y python. Leí la definición de pip-compiles en la documentación de pip-tools pero no pude entender. Puede alguien explicarme esto? Más específicamente, ¿qué significa compilar requisitos.in para producir requisitos.txt?
Desea poder bloquear las versiones de todos los paquetes de los que depende su código de Python en su archivo requirements.txt . Desea que este archivo incluya versiones no solo para las dependencias directas que su código importa directamente, sino también para todas las dependencias transitivas... es decir, las versiones de los módulos de los que dependen directamente sus propios módulos dependientes.
Entonces, la pregunta es... ¿cómo se mantiene el contenido de "requirements.txt"? Puede usar pip freeze > requirements.txt , pero esto es complicado. No depende de una lista clara de cuáles son las dependencias directas de su aplicación, sino de lo que sucede en su entorno en el momento de la creación. Lo que realmente desea es tener un archivo en el que enumere las dependencias directas de su aplicación, junto con las versiones para cada una de ellas, y luego, de alguna manera, producir el archivo requirements.txt apropiado de esa lista, de modo que contenga exactamente las versiones para esos requisitos directos. dependencias, así como versiones solo para las dependencias transitivas que necesitan esas dependencias directas.
El archivo requirements.in y pip-compile juntos le brindan este comportamiento deseado. En requirements.in , enumera solo las dependencias directas de su aplicación. Luego, ejecuta pip-compile en ese archivo para producir requirements.txt . El proceso de compilación producirá lo que desea... un archivo que contiene tanto los módulos enumerados en requirements.in como las dependencias transitivas de esos módulos.