generar - python para web
Cómo ejecutar Pylint para todos los archivos de Python en un directorio (7)
yo tengo
find . -iname "*.py" -exec pylint -E {} ;/
y
FILES=$(find . -iname "*.py")
pylint -E $FILES
Si entiendo correctamente, el primer comando ejecutará pylint para cada uno de los archivos de Python, el segundo ejecutará pylint una vez para todos los archivos. Esperaba que ambos comandos devolvieran la misma salida, pero devolvían resultados diferentes. Creo que esta diferencia está relacionada de alguna manera con las importaciones y los mensajes F (error) de pylint, que se producen cuando falla una importación y no se imprimen mediante pylint -E.
¿Alguien ya ha experimentado esto y podría explicar por qué ocurre el diff y cuál es la mejor manera de ejecutar el pylint?
¿Probó psospector ( https://pypi.org/project/prospector/ ) o pylint_runner ( https://pypi.org/project/pylint_runner/ )
Mi un centavo
find . -iname "*.py" | xargs pylint
¿Como funciona?
find
encuentra todos los archivos termina con py
y pasa a xargs
, pylint
ejecuta el comando pylint
en cada archivo.
NOTA: También puede dar cualquier argumento al comando pylint
.
EDITAR:
Según doc podemos usar
[1] pylint mymodule.py
[2] directorio pylint / mymodule.py
[2] funcionará si el directorio es un paquete de python (es decir, tiene un archivo __init__.py
o si es un paquete de espacio de nombres implícito) o si “directorio” está en la ruta de python.
Para todos los archivos de Python en un directorio puede ejecutar:
pylint *.py
Para todos los archivos python en un directorio y sus subdirectorios puede ejecutar:
pylint **/*.py
Si no tiene un archivo __init__.py
en el directorio, y no quiere hacerlo por varias razones, mi enfoque es
touch __init__.py; pylint <folder-name>; rm __init__.py
Si su objetivo es ejecutar pylint en todos los archivos en el directorio de trabajo actual y las subcarpetas, aquí hay una solución. Este script ejecuta pylint en el directorio actual. Si __init__.py
no existe, lo crea, ejecuta pylint y luego lo elimina.
#! /bin/bash -
if [[ ! -e __init__.py ]]; then
touch __init__.py
pylint `pwd`
rm __init__.py
else
pylint `pwd`
fi
Simplemente pase el nombre del directorio al comando pylint. Para ./server
todos los archivos en ./server
:
pylint server
Y si desea ejecutar su archivo de configuración personalizado use el comando siguiente
pylint --rcfile=.pylintrc <directory_name>