web-dev-qa-db-ja.com

PyCharmのフレーク8エラーの説明

PyCharmには 現時点でのflake8の組み込みサポート はありません。ただし、flake8は、外部ツールとして実行するように構成できます。

時には、特にPython newcomersの場合、すべてのflake8警告が理解できるとは限らず、追加の説明が必要です。

Flake8Rulesプロジェクト に最近遭遇しました。これは、すべての警告をサポートする例で詳細に説明しようとしています。

PyCharm、flake8、およびFlake8Rulesを組み合わせて、静的コード分析の警告に追加の説明またはFlake8Rulesカタログへのリンクを表示する方法はありますか?

10
alecxe

それは間違いなく可能です。

1つのアプローチは、 flake8コマンドラインオプション を使用して--format出力を調整し、Flake8Rulesカタログへのhttp(s)リンクを指定することです。

--format='%(path)s:%(row)d,%(col)d:%(code)s:%(text)s:https://lintlyci.github.io/Flake8Rules/rules/%(code)s.html'

次に問題は、コンソールまたはPyCharm出力ウィンドウがリンクを適切にレンダリングすることです。

幸い、プラグインを使用してそれを行うことができます- "Awesome Console" ターミナルと "Console Link" 出力ウィンドウ。


ステップバイステップの説明

  1. 現在のPython環境にflake8がインストールされていることを確認してください
  2. 「Awesome Console」プラグインをインストール:
    • PyCharm Preferences -> Plugins -> Browser Repositories...に移動
    • 「Awesome Console」を見つけてインストールします(PyCharmの再起動が必要です): enter image description here
  3. "flake8"を 外部ツール :として構成します。
    • PyCharm Preferences -> Tools -> External Tools -> "+"に移動
    • 処理する目的のディレクトリ/パスのflake8および$FileDir$/$FileName$プレースホルダーへのパスを構成します。 enter image description here

デモ

ここで、いくつかの違反を含むこのtest.pyファイルを作成したとします。

def f(a = 10):
  return a*10

test.pyファイルを右クリックしてExternal Tools -> flake8を選択すると、これが取得する出力です(すべての警告のクリック可能なリンクに注意してください)。

enter image description here

ここで、疑わしい場合はいつでも、リンクをクリックして警告の詳細を確認できます。

これはそのための1つの方法にすぎません。これらのツールとプロジェクトを組み合わせるためのより簡単またはより良い方法があるかどうかを聞いて喜んでいます。

17
alecxe

今日私もこの問題に直面していますが、@ alecxeの回答は1つのプロジェクト設定に適しています

Flake8をグローバルに設定する場合は、以下のプロセスに従うことができます

  1. プロジェクトにflake8がインストールされていることを確認してください
  2. pycharmにvirtualenvパスが設定されていることを確認してください
  3. flake8を外部ツールgotoファイルとして構成>設定>外部ツール> '+'

パスを設定 enter image description here

プログラム-flake8実行可能ファイルへのパス$ PyInterpreterDirectory $は、現在のプロジェクトのPythonインタプリタが配置されているディレクトリです

引数-チェックするファイルとフォルダーを指定します$ FilePath $

作業ディレクトリ-プロジェクトのルートディレクトリ$ ContentRoot $

6
Somil

必要なすべての人に:

  • リモートを使用してファイルに対して実行pythonインタプリタ
  • 誰がのみを必要とするフレーク8変更されたファイルのgitステータスに関する
  • 他のフレーク8引数を渡したい苦痛なし

Pycharmでこの種のツールをセットアップするには:

_File | Settings | Tools | Remote SSH External Tools
_

設定例については、以下の画面を参照してください: enter image description here

引数:-c "flake8 $(git status -s | grep -E '\.py$' | cut -c 4-) --max-line-lengt=120"

私の場合、重要なことは:

  1. _/bin/bash_を直接使用する代わりに_flake8_を直接使用する
  2. 引数セクションに_-c "whatever args subcommands etc I need here"_を入力する

参考のために:

注:virtualenvからflake8を使用するには、次のようにフルパスを指定する必要があります:_/z/your_virtual_envs/bin/flake8_

2
andilabs