Explorador intraestelar
Tengo un archivo requirements.txt para una base de código de Python. El archivo tiene todo especificado:
pytz==2017.2
requests==2.18.4
six==1.11.0
Estoy agregando un nuevo paquete. ¿Debo enumerar su versión? En caso afirmativo, ¿cómo elijo una versión para especificar?
Ingeniero
Revisar la documentos pip para obtener más información, pero básicamente no necesita especificar una versión. Haciéndolo poder Sin embargo, evite dolores de cabeza, ya que especificar una versión le permite garantizar que no terminará en un infierno de dependencia.
Tenga en cuenta que si está creando un paquete para implementar e instalar pip, debe usar el instalar-requiere metadatos en lugar de depender de los requisitos.txt.
Además, es una buena idea adquirir el hábito de usar entornos virtuales para evitar problemas de dependencia, especialmente al desarrollar sus propias cosas. Anaconda ofrece una solución sencilla con el conda create
comando, y virtualenv
funciona muy bien con virtualenvwrapper
para una solución más ligera. Otra solución, pipenv
es bastante popular.
Código Toms
Especificar una versión no es un requisito, aunque ayuda mucho en el futuro. Algunas versiones de paquetes no funcionarán bien con otros paquetes y sus respectivas versiones. Es difícil predecir cómo los cambios en el futuro afectarán estas interrelaciones. Esta es la razón por la que es muy beneficioso crear una instantánea en el tiempo (en su requirements.txt) que muestre qué interrelaciones de versión funcionan.
Para crear un archivo requirements.txt que incluya las versiones de los paquetes que está utilizando, haga lo siguiente. En su consola/terminal cd en la ubicación que le gustaría que fuera su requerimiento.txt e ingrese:
pip freeze > requirements.txt
Esto generará automáticamente un archivo de requisito.txt que incluye los paquetes que ha instalado con sus respectivas versiones.
Un consejo: debe intentar utilizar un entorno virtual para cada proyecto individual en el que trabajará. Esto crea una ‘burbuja’ para que pueda trabajar e instalar versiones específicas del paquete, sin que afecte sus otros proyectos. Le ahorrará muchos dolores de cabeza en el futuro, ya que sus paquetes y versiones se mantendrán específicos para el proyecto. sugiero usar Entorno virtual Anaconda.
-
Me encanta esta respuesta, no sabía cómo verificar todas las versiones que tengo actualmente. Gracias
– Denys Fialko
31 de enero de 2021 a las 21:20
-
¡Me alegro de que haya ayudado a @DenysFiialko! También puede escribir ‘pip freeze’ (sin escribir ‘> requisitos.txt’) mientras está en su cosnole/terminal para enumerar las versiones de su paquete si no desea crear un archivo de texto
– Código Toms
31/01/2021 a las 21:50
No, no es necesario especificar una versión. Sin embargo, probablemente sea una buena idea especificar uno.
Si desea especificar una versión pero no sabe qué versión especificar, intente usar pip freeze
que arrojará una lista de todos los paquetes que tiene instalados actualmente y cuáles son sus versiones.
¿Está utilizando un entorno virtual?
– Código Toms
07/03/2019 a las 20:42
Te tropezaste con un debate polémico en Python. no, no lo haces tener a. ¿Deberías depende de su aplicación. ¿Puedes describir lo que estás tratando de hacer?
– pilang
7 de marzo de 2019 a las 22:08
@Tom Mac Sí, pero por curiosidad, ¿por qué preguntas?
– Explorador intraestelar
7 de marzo de 2019 a las 23:27
@pylang Me pregunto, trato de seguir las mejores prácticas. La aplicación es la automatización de la fabricación; en este caso, un controlador escrito en Python.
– Explorador intraestelar
7 de marzo de 2019 a las 23:27
@Intrastellar Explorer Iba a sugerir usar uno antes de que se congelara en sus requisitos, pero está ordenado
– Código Toms
7 de marzo de 2019 a las 23:56