web-dev-qa-db-fra.com

Comment exécuter Pylint avec PyCharm

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.

39
Wasif Hyder

Vous pouvez configurer pylint pour travailler avec PyCharm en procédant comme suit:

  1. Installez pylint:

    $ pip install pylint
    
  2. 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
    
  3. 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} _")

     PyCharm External tools

  4. 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.

     PyCharm Edit Tool

  5. Exécutez pylint à partir de Tools -> External Tools -> pylint:

     PyCharm External Tools

  6. Regardez votre sortie dans le terminal PyCharm

     PyCharm terminal

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.

 PyCharm check entire project

78
lmiguelvargasf

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.

 pylint arguments

20
lkraider

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$\:.*

 PyLint for PyCharm External Tool settings screenshot

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.

5
Aaron F

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:  enter image description here PyCharm ne reconnaît pas la colonne même si elle est configurée. Mais avoir le fichier et la ligne me suffit.

5
ub_marco

Vous pouvez essayer ceci plugin Pylint PyCharm :

 Pylint PyCharm screenshot

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:  enter image description here

(Juste pour des raisons de transparence, je suis le développeur)

4
Roberto Leinardi

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.

3
ikreb

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:

  1. 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.

  2. 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$:

Outil externe pour pylint

0
Erik