J'ai
find . -iname "*.py" -exec pylint -E {} ;\
et
FILES=$(find . -iname "*.py")
pylint -E $FILES
Si je comprends bien, la première commande exécutera pylint pour chacun des fichiers Python, la seconde exécutera pylint une fois pour tous les fichiers. Je m'attendais à ce que les deux commandes renvoient la même sortie, mais elles renvoient des résultats différents. Je pense que ce diff est en quelque sorte lié aux importations et aux messages pylint F (échec), ce qui se produit lorsqu'une importation échoue et est pas sortie par pylint -E.
Quelqu'un en a-t-il déjà fait l'expérience et pourrait expliquer pourquoi le diff se produit et quel est le meilleur moyen de faire fonctionner pylint?
Mon un cent
find . -iname "*.py" | xargs pylint
Comment ça marche?
find
trouve tous les fichiers se termine par py
et passe à xargs
, xargs
exécute la commande pylint
sur chaque fichier.
REMARQUE: Vous pouvez également attribuer n’importe quel argument à la commande pylint
.
MODIFIER:
Selon doc nous pouvons utiliser
[1] pylint mymodule.py
[2] répertoire pylint/mymodule.py
[2] fonctionnera si directory est un package python (c’est-à-dire qu’il a un fichier __init__.py
ou qu’il s’agit d’un package d’espace de nommage implicite) ou si «directory» est dans le chemin du python.
Il suffit de passer le nom du répertoire à la commande pylint. Pour lier tous les fichiers dans ./server
:
pylint server
Pour tous les fichiers python d'un répertoire, vous pouvez exécuter:
pylint *.py
pylint **/*.py
Si vous n'avez pas de fichier __init__.py
dans le répertoire et que vous ne le souhaitez pas pour diverses raisons, mon approche est la suivante:
touch __init__.py; pylint <folder-name>; rm __init__.py
Avez-vous essayé psospector ( https://pypi.org/project/prospector/ ) ou pylint_runner ( https://pypi.org/project/pylint_runner/ )
Si votre objectif est d’exécuter pylint sur tous les fichiers du répertoire de travail et des sous-dossiers en cours, voici une solution de contournement. Ce script exécute pylint sur le répertoire en cours. Si __init__.py
n'existe pas, il le crée, exécute pylint, puis le supprime.
#! /bin/bash -
if [[ ! -e __init__.py ]]; then
touch __init__.py
pylint `pwd`
rm __init__.py
else
pylint `pwd`
fi
Et si vous souhaitez exécuter votre fichier de configuration personnalisé, utilisez la commande ci-dessous.
pylint --rcfile=.pylintrc <directory_name>