Je souhaite configurer pylint en tant qu'outil externe sur l'ensemble du répertoire de projet d'un projet python sur lequel je travaille. J'ai essayé d'utiliser le référentiel en tant que module avec __init__.py
et sans, et cela ne fonctionne pas.
J'ai de la difficulté à installer pylint pour pouvoir travailler avec PyCharm. Je sais que je devrais l'exécuter en tant qu'outil externe, mais les paramètres me déroutent.
La source faisant autorité sur leur documentation est cassée, donc je ne peux pas vérifier cela non plus.
Vous pouvez configurer pylint
pour travailler avec PyCharm en procédant comme suit:
Installez pylint
:
$ pip install pylint
Localisez votre dossier d'installation pylint
:
$ which pylint # MacOS/Linux
/usr/local/bin/pylint # this is just a possible output check yours
$ where pylint # Windows
%LocalAppData%\Programs\Python\Python36-32\Scripts\pylint.exe # possible location
Ouvrez la fenêtre de configuration de PyCharm avec File -> Settings
, puis accédez à Tools -> External Tools
dans la barre latérale. (Ou recherchez "outils externes} _")
Configurez un outil externe en cliquant sur le signe + et en remplissant les champs en conséquence. Dans Program
, utilisez le chemin que vous avez obtenu lors de l'exécution de which pylint
. Pour les autres valeurs, vous pouvez utiliser la même chose que l'image.
Exécutez pylint
à partir de Tools -> External Tools -> pylint
:
Regardez votre sortie dans le terminal PyCharm
Pour plus de détails, voir Pylinting avec PyCharm .
Mettre à jour:
Si vous souhaitez utiliser pylint
pour vérifier l'intégralité de votre projet ou un fichier ou répertoire particulier, vous pouvez cliquer avec le bouton droit de la souris sur la racine, le fichier ou le répertoire de votre projet, puis sur External Tools -> pylint
, comme indiqué ci-dessous.
Comme je n'ai pas trouvé de configuration prête à l'emploi qui fonctionne, voici les paramètres que j'utilise dans PyCharm CE 2018.1 sur macOS:
1 - pip install pylint
dans votre projet, virtuellement ou globalement
2 - Ajouter un nouvel outil externe et configurer:
Program: pylint
Arguments: "--msg-template='{abspath}:{line:5d},{column:2d}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\,\s*$COLUMN$:
Notez les guillemets requis pour le msg-template et les caractères d'échappement pour les filtres de sortie. Le filtre de sortie permet de cliquer sur le chemin du fichier et d’ouvrir l’emplacement dans l’éditeur de source IDE.
La seule caractéristique manquante serait les filtres de sortie permettant de tracer les descriptions de charpie directement dans la vue source, comme avec le filtre intégré. Aucune fonctionnalité de ce type pour le moment.
Edit: J'utilise maintenant et recommande le plugin Pycharm qui n'existait pas lorsque j'ai écrit cette réponse pour la première fois.
Un collègue m'a pointé vers pylint-pycharm sur GitHub . C'est un wrapper autour de pylint avec une sortie formatée pour PyCharm . Voici comment je l'ai configuré:
git clone https://github.com/perses76/pylint-pycharm.git
cd pylint-pycharm
python setup.py build
Cela crée build/scripts-2.7/pylint-pycharm
Ensuite, dans PyCharm, créez un nouvel outil externe avec ces paramètres:
Program: path to your installation of pylint-pycharm
Arguments: --virtualenv=$PyInterpreterDirectory$/.. $FileName$
Working directory: $FileDir$
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*
Maintenant, lancez-le depuis Outils -> Outils externes -> PyLintPyCharm . Chaque ligne de sortie sera reliée par un lien hypertexte à la position correspondante dans le code source.
Une remarque sur les réponses précédentes ... Je cherchais une méthode pour que PyCharm soit au courant de la syntaxe de sortie afin que je puisse accéder directement aux emplacements des fichiers. Cela fonctionne sans utiliser d'outils supplémentaires.
Pylint peut être configuré pour générer des messages dans un format spécifique à l'aide de l'option msg-template
dans le fichier pylintrc ou de l'option CLI --msg-template
.
Je l'ai mis à: msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'
Dans les paramètres de l'outil externe, le Output filters:
peut être réglé sur $FILE_PATH$:$LINE$:$COLUMN$: .*
so PyCharm montre les liens permettant de passer directement aux emplacements signalés . Cela peut être combiné avec output-format=colorized
et je reçois donc ceci: PyCharm ne reconnaît pas la colonne même si elle est configurée. Mais avoir le fichier et la ligne me suffit.
Vous pouvez essayer ceci plugin Pylint PyCharm :
analyse à la fois en temps réel et à la demande des fichiers Python avec Pylint à partir de PyCharm/IDEA.
Une fois que vous l'avez installé, l'inspection en temps réel fonctionne automatiquement . Pour la demande, vous avez plusieurs options qui vont de la simple vérification du fichier actuellement ouvert à l'analyse du projet entier:
(Juste pour des raisons de transparence, je suis le développeur)
Au début, installez pylint avec pip:
pip install pylint
Vous devez ouvrir «Paramètres> Outils> Outils externes» et appuyer sur le bouton «+» sur PyCharm.
Voici un exemple avec de bons réglages.
Grâce aux informations ici et à la documentation mise à jour de PyCharm, j'ai pu faire en sorte que cela fonctionne correctement et également utiliser l'environnement virtuel du projet (en s'assurant que tous les packages peuvent être déployés dans l'environnement virtuel et ne doivent pas nécessairement être déployés à l'échelle mondiale ).
En prenant ce que lkraider a fourni plus tôt mais avec de légères modifications:
Assurez-vous d’installer pylint dans l’environnement virtuel. Remarque: assurez-vous que lors de la création de l'environnement virtuel, vous n'avez pas sélectionné "Hériter des packages de sites globaux". Si vous le faites, alors pylint finira par être mondial et cela ne fonctionnera pas.
Ajouter un nouvel outil externe et configurer. Ceci est légèrement différent de ce que lkraider a fourni. D'une part, je voulais que cela ressemble plus à une sortie pylint normale, d'où mon msg-template (et le filtre de sortie) est un peu différent. Le deuxième changement est plus important pour l'exécution de pylint en fonction de l'environnement virtuel, c'est le paramètre du programme où j'utilise $ PyInterpreterDirectory $.
Program: $PyInterpreterDirectory$/pylint
Arguments: "--msg-template='{abspath}:{line:5d}:{column}: {msg_id}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\:\s*$COLUMN$: