2016-04-26 25 views
8

ディレクトリ内のすべてのPythonファイルに対してPylintを実行する方法私が持っている

find . -iname "*.py" -exec pylint -E {} ;\ 

FILES=$(find . -iname "*.py") 
pylint -E $FILES 

私が正しく理解していれば

、Pythonのファイルごとpylintを実行する最初のコマンド、 2番目のファイルはすべてのファイルに対してpylintを一度実行します。私は、両方のコマンドが同じ出力を返すと予想しましたが、異なる結果を返します。私はこの差分は、輸入が失敗したときに発生するインポートとF(失敗)ファイルのメッセージに何らかの形で関連していると思います。 ではなく、の出力がpylint -Eです。

誰かがこれまでに経験したことがあり、diffが発生する理由と、pylintを実行する最善の方法は何か説明できますか?

答えて

15

私の1セント

find . -iname "*.py" | xargs pylint 

それがどのように動作しますか?

findxargsは、各ファイルのpylintのコマンドを実行し、pyで終わるとxargsに渡すすべてのファイルを検索します。

注:pylintコマンドにも引数を付けることができます。

EDIT:

docによると、我々は

を使用することができます[1] pylintのmymodule.py

[2] pylintディレクトリ/ mymodule.py

[2]場合は動作しますディレクトリはPythonパッケージです(つまり、ファイルが__init__.pyであるか暗黙的な名前空間パッケージです)。または、 "directory"がpythonパスにある場合。

+10

これはひどいです。 pylint中心の解決策はありませんか? – dopatraman

0

ディレクトリ名をpylintコマンドに渡してください。すべてのファイルをリントするには./server

pylint server