61 votes

Quels sont les correcteurs de charpie complets pour Python?

J'ai entendu dire que plusieurs outils vous permettent de vérifier le code des erreurs Python courantes, telles que pylint et pyflakes. Je recherche celui qui est complet, correct et simple à intégrer dans une construction (setup.py de préférence ou buildbot si de bonnes raisons).

Lequel recommandez-vous et pourquoi?

86voto

Gringo Suave Points 5985

Il y a plusieurs peluches-type de programmes en Python:

  • pychecker - exécute (soyez prudent)
  • pyflakes - analyse, idéal pour trouver NameErrors, l'obsolescence des importations
  • pylint - analyse, très complet (sur le trop-compulsif côté).
  • pep8 - analyse, un correcteur de style.
  • flake8 - analyseur, combine pep8 et pyflakes, avec qui ajoute à la complexité de soutien, extensible.

Tous m'ont aidé à trouver des petits problèmes et ont leurs avantages et leurs inconvénients. Il y a aussi beaucoup de discussion ici.

14voto

Tom Willis Points 3506

Cette question est trop large donc je vais juste ma liste d'outil de la chaîne d'FWIW.

Modification des

emacs + python-mode + flymake + ropemacs.

flymake exécute un processus que vous modifiez un fichier, le processus peut être quelque chose. J'ai flymake configuré pour déclencher pyflakes et pep8. Donc, je reçois des indications dans le fichier de pep8 violations, des erreurs de syntaxe, la partie inutilisée des importations, les variables déclarées mais non utilisés, etc......

la corde est très pratique pour se déplacer rapidement dans les déclarations et un peu d'auto complète. Il sera également vous montrer les documents et les signatures de la fonction etc....

Je suis sûr qu'il ya les trucs similaires pour vim. Et si mon collègue n'a pas réussi à le faire fonctionner, j'ai dit wingide pouvez utiliser pyflakes et pep8.

Les tests

nez + divers plugins. Dans mon emacs-je lier F7(compiler) pour exécuter le nez, de cette façon je peux obtenir un tampon où je peux sauter les erreurs et ensuite sauter à la ligne dans le code source.

le contrôle de version

j'utilise mercurial

dépendances

buildout ou virtualenv, ou les deux. selon le projet. Utiliser ce qui est le mieux pour votre projet. J'ai mis en place avec buildout parce que j'ai développer fo appengine droit maintenant, et je préfère les recettes de buildout pour l'appengine structure de la demande à l'appengine singe, mais c'est juste moi.

Si je n'étais pas le développement pour appengine je serais probablement le bâton avec virtualenv.

intégration continue

jenkins est le plus facile que j'ai jamais de l'installation. il fonctionne essentiellement de la même testsuite que j'utilise sur ma commande compile mais aussi de générer un rapport de couverture.

Je pense être conscient de ce qui existe, et d'être en mesure de transformer tous vos besoins du projet sur lequel vous travaillez est mieux que la recherche d'un "meilleur de race" solution, principalement parce que le meilleur de race solution n'existe tout simplement pas.

1voto

KilledKenny Points 208

Pour répondre à une question large avec une réponse large.

Quel IDE utiliser pour Python? Beaucoup d'éditeurs en trouvent un qui vous aide à voir ce que vous pourriez manquer dans le bloc-notes.

Fonctionnalités cachées de Python Découvrez ce que vous pouvez faire avec Python.

0voto

Andreas Jung Points 1

Il n'y a rien comme "le meilleur". Toola comme éditeur, systèmes de contrôle de source, etc. sont largement connus et documentés. Inutile de discuter pourquoi X est meilleur que Y ... discuté assez souvent. Le choix des outils dépend des préférences personnelles ou des contraintes de l'entreprise. Alors, posez une question plus précise qui mérite d’être traitée en détail.

-1voto

Ken Points 3228

L'intégration de quelque chose comme pylint dans votre processus de génération n'est pas quelque chose de très commun pour Python devs à faire, au moins en partie parce que nous n'avons pas de processus de génération.

Peut-être vous avez pylint exécuter une tâche cron qui vérifie votre tronc, l'exécute, et vous envoie un rapport ou un rapport, si elle est différente de celle d'hier.

Personnellement, j'utilise WingIDE Professionnel, avec le supplément de pylint panneau. Ce n'est pas parfait, et si votre pylint est mal configuré, plus ou moins silencieusement échoue, mais quand je fais une grave édition, ça m'aide à comprendre ce que je peut supprimer de ma liste d'importations, etc. WingIDE dispose également de fonctionnalités de refactoring, qui fonctionne assez bien, mais encore une fois avec la nature dynamique de Python, ne sont jamais parfaites. Leur recherche et de remplacement de l'outil est vraiment le tueur fonctionnalité de refactoring.

Une autre chose que vous devriez considérer est l'intégration de nosetests (ou un autre framework de test unitaire), et ce, programmée ou automatique Q/Un cadre que vous avez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X