pep8.pyをEclipseに統合する方法は?


90

少し背景:

  • PEP 8Pythonコードのスタイルガイドです。すべてのPythonプログラマが従うべき規則が含まれています。
  • PEP8によると、pep8.pyは、特定のPythonスクリプトのコード形式をチェックする(非常に便利な)スクリプトです。
  • Eclipseは素晴らしいIDEです。PyDevはの延長、Pythonの開発に使用することができます

スクリプトを作成するときにpep8.pyを手動で実行しますが、大きなプロジェクトではEclipseを使用することを好みます。pep8.pyをEclipse / Pydevに統合すると、プロジェクトのすべてのファイルで自動的に実行され、警告が含まれている行を指すようになるため、非常に便利です。たぶんそれを行う明白な方法があるかもしれませんが、私はそれをまだ見つけていません。

質問は:pep8.pyをEclipseに統合する方法


3
現在、デフォルトのpep8統合があります。参照:stackoverflow.com/questions/399956/...
ファビオZadrozny

1
Dmitry Kochkinの回答を受け入れてから状況が変化した場合、受け入れた回答をFabio Zadroznyの回答またはangelo.bixlyの回答に変更することを提案できますか?これは、私と同じように、Googleからこの質問に来た将来の訪問者を支援し、最新の情報を最初に見つけられるようにします。そうしないと、これらの回答がトップにプッシュされるまでに時間がかかる場合があります。
マークブース

回答:


88

PyDev 2.3.0以降、pep8デフォルトでPyDevに統合され、デフォルトバージョンが同梱されています。

ウィンドウを開く>設定

PyDev> Editor> Code Analysis> pep8.pyで有効にする必要があります

エラー/警告は、マーカーとして表示する必要があります(通常のコード分析の他のものと同様)。

ファイルが分析されない場合は、https://stackoverflow.com/a/31001619/832230を参照してください


6
デフォルトでは、多くの警告が表示されます。ただし、コマンドラインから実行すると、さらに多くのことが表示されます。コマンドラインから実行したときに表示されるように、Eclipseですべての警告を表示するようにするにはどうすればよいですか?オプションは同じです。また、pep8出力をコンソールにリダイレクトしても何も起こりません。
Krystian Cybulski、2013年

2
PyDevは内部Jythonバージョン(現在2.2.1)を使用しているため、現在古いバージョンを使用しています。外部で実行して結果を取得するか、内部Jythonを更新して新しいバージョンのpep8.pyをサポートできるようにする計画があります。
Fabio Zadrozny、2014

どうやら、これはPyDev 4.2.0では機能せず、警告モードでもエラーモードでもマーカーは表示されません。
ルイス・デ・スーザ

1
ここでテストしただけで機能します。機能するためには、ソースがソースフォルダー(つまり、PYTHONPATH内)にある必要があります(それでも機能しない場合は、pydevトラッカーで問題を報告してください) )。
Fabio Zadrozny、2015

エラーモードに設定すると動作し始めました。また、コードをアクティブにしてから、コードのマーキングを開始するまでに遅延があります。
ルイス・デ・スーザ

26

プロジェクト全体に統合する方法はわかりませんが、個別のファイルを分析するための外部ツールとして使用しました。

pycodestyleパッケージは公式の代替pep8パッケージであり、パッケージの新しいバージョンであることに注意してください。それをインストールするには、以下を実行します:

$ sudo pip install --upgrade pycodestyle

次に、Eclipseで:

  1. 実行-外部ツール-外部ツールの構成...を選択します。
  2. [ プログラムルートノード]を選択します。
  3. 押して新しい起動構成ボタン。
  4. 起動構成の名前を入力します。使用しますpycodestyle
  5. 次のフィールドに入力します。

    場所 -${system_path:pycodestyle}

    作業ディレクトリ -${container_loc}

    引数 - "${resource_name}"(これは現在アクティブなファイルを使用します。)

[ 共通 ]タブに移動し、[ コンソール割り当て ] チェックボックスがオンになっていることを確認します。

このアプローチの利点は、非常に最新のバージョンのパッケージを使用でき、PyDevに含まれている古いバージョンに限定されないことです。pylint同様の方法で設定したい場合は、この回答をご覧ください。


1
エラー変数参照が空の選択を参照している場合:$ {container_loc}ソースフォルダーをPYTHONPATHに追加することを忘れないでください(既存のプロジェクトをワークスペースにインポートする場合、そこにない可能性があります)。プロジェクト名を右クリックし、[プロパティ]> [PyDev-PYTHONPATH]> [ソースフォルダー]タブをクリックして、[ ソースフォルダーを追加]をクリックします。魅力のように動作するはずです。
バーニ

2
現在、デフォルトのpep8統合があります。参照:stackoverflow.com/a/8532188/110451
Fabio Zadrozny、2011

1
これは、ほとんどがEclispeで利用できるので、pep8のチェックにはあまり役に立ちませんが、autopep8には最適です。ありがとう
トム・ストラトン2013年

12
  1. Eclipseを開く
  2. ヘルプに移動し、新しいソフトウェアのインストールを選択します
  3. [追加]ボタンをクリックすると、[リポジトリの追加]ダイアログボックスが表示されます
  4. 好きな名前を付けることができます。(私はPyDevを使用しました)
  5. 場所には、「http://pydev.org/updates」と入力します
  6. OKをクリックします。
  7. これでインストール中です。完了するまでお待ちください。
  8. インストール後、Eclipseを閉じて再度開きます。
  9. PyDevがEclipseにインストールされたので、Window-> Preferencesに移動します
  10. PyDev-> Editor-> Code Analysisを選択します
  11. pep8.pyタブに移動します
  12. 警告のラジオボタンを選択し、[OK]をクリックします。

それでおしまい。これで、Eclipse IDEがPEP8と統合されました。pep8.pyを自動的に実行するには、プロジェクトエディターを右クリックします。PyDevを選択し、「コード分析」をクリックします。ワークスペースの[問題]タブに、PEP8で違反したことを示す行(違反した場合)を示す警告が表示されます。


非常に奇妙なのは、pep8の設定をどれほど難しくしようとも、エディターの警告と情報マーカーが表示されなかったことです。それは私が「問題」ビューを追加するまでで、それから突然それは魅力のように機能しました...
Agey

10

コード分​​析:

Eclipse(PyDev)で、pep8スタイルを使用してコード分​​析を行う場合は、

Windows- > Preferences- > PyDev- > Editor- > Code Analysis-> pep8.pyタブに移動し、Warningを選択してApplyとOKボタンをクリックします。

あなたのpythonコードでpep8コーディングスタイルを検証すると、警告が表示されます

自動コードフォーマット:

Eclipse(PyDev)で、pep8スタイルを使用してpythonコードを自動フォーマットする場合

Windows-> Preferences-> PyDev-> Editor-> Code Style-> Code Formatter->をクリックしてチェックボックスをクリックします(コンソールのフォーマットにautopep8.pyを使用しますか?)ApplyとOKボタンをクリックします。

以下の行の長さを増やしたい場合(pep8のデフォルトは79)autopep8.pyを使用して、--max-line-length=150最大長を150に設定すると、パラメータータイプを設定できます。

自動フォーマットのショートカット(Ctrl + Shift + f)を押すと、pep8スタイルのようなpythonコードが自動的にフォーマットされます


6

それはまだPydevに完全に統合されていないようです。

この投稿で提案されているように

[それ] pydev内のコードを変更する必要があります-柔軟なオプションは、ユーザーがハイパーリンクを作成するために一致させたいパターンをユーザーが選択できるように設定を追加することです(そして、一致のどのグループが行であり、どのグループがファイル)...

または、org.python.pydev.debug.ui.PythonConsoleLineTrackerを使ってハードコード化して試すこともできます(かなり簡単に理解できるはずです)。

要求が存在しないだけで、そのために、まだその作成後1年オープンのようです...


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.