python pip refactoring pycharm requirements.txt

python - Eliminar paquetes no utilizados del archivo de requisitos



pip refactoring (3)

La mejor opción es usar un ( nuevo ) python virtual-env sin paquetes, o solo los que definitivamente sabe que necesita, probar su paquete: instalar paquetes faltantes con pip cuando encuentre problemas que deberían ser bastante rápidos para la mayoría de los programas y luego usar el comando pip freeze para listar los paquetes que realmente necesitas. Mejor usted podría usar la pip wheel para crear una rueda con los paquetes en.
El otro enfoque sería:

  1. Use pylint para revisar cada archivo en busca de importaciones no utilizadas y elimínelas, (debería hacer esto de todos modos),
  2. Ejecute sus pruebas para asegurarse de que fue correcto,
  3. Use una herramienta como snakefood para generar su nueva lista de dependencias

Tenga en cuenta que para que cualquier verificación de dependencia funcione bien, es aconsejable evitar la importación condicional y la importación dentro de las funciones.

También tenga en cuenta que para asegurarse de que tiene todo, entonces es una buena idea crear un nuevo entorno virtual e instalar desde la lista de dependencias y luego volver a probar su código.

¿Hay alguna forma fácil de eliminar los paquetes que ya no se utilizan del archivo de requisitos ?

Escribí un script de bash para esta tarea, pero no funciona como esperaba. Porque, algunos paquetes no se utilizan después de sus nombres de proyectos PyPI. Por ejemplo;

dj-database-url

paquete se utiliza como

dj_database_url

Mi proyecto tiene muchos paquetes en su propio archivo de requisitos, por lo tanto, buscarlos uno por uno es demasiado complicado, propenso a errores y lleva demasiado tiempo. Mientras buscaba, los IDE todavía no tienen esta propiedad.


Lo he utilizado con éxito pip-check-reqs .

Con el comando pip-extra-reqs your_directory verificará todas las dependencias no utilizadas en your_directory

Instálelo con pip install pip-check-reqs .


Puedes usar Code Inspection en PyCharm .

Elimine el contenido de sus requirements.txt pero mantenga el archivo vacío. Cargue su proyecto, PyCharm vaya a Code -> Inspect code... Elija la opción Whole project en el cuadro de diálogo y haga OK en OK . En el panel de resultados de inspección, ubique la sección Package requirements en Python (tenga en cuenta que esta sección se mostrará solo si hay algún archivo setup.py o setup.py ). La sección contendrá uno de los siguientes mensajes:

  • Package requirement ''<package>'' is not satisfied si hay algún paquete que se encuentra en requirements.txt pero no se usa en ningún archivo .py.
  • Package ''<package>'' is not listed in project requirements si hay algún paquete que se usa en archivos .py, pero no se encuentra en requirements.txt .

Usted está interesado en la segunda inspección. Puede agregar todos los paquetes usados ​​a requirements.txt haciendo clic con el botón derecho en la sección Package requirements del Package requirements y seleccionando Apply Fix ''Add requirements ''<package>'' to requirements.txt'' . Tenga en cuenta que solo mostrará un nombre de paquete, pero en realidad agregará todos los paquetes usados ​​a requirements.txt si se le solicita la sección.

Si lo desea, puede agregarlos uno por uno, simplemente haga clic con el botón derecho en la inspección correspondiente a cierto paquete y seleccione Apply Fix ''Add requirements ''<package>'' to requirements.txt'' , repítalo para cada inspección de este tipo.

Después de eso, puede crear un entorno virtual limpio e instalar paquetes desde los nuevos requirements.txt .

También tenga en cuenta que PyCharm tiene una función de optimización de importación, vea Optimizar importaciones .... Puede ser útil usar esta función antes de cualquier otro paso mencionado anteriormente.