はじめに
Pythonの開発はPycharmを使っています。
PythonのCoding styleの警告である
Variable in function should be lowercase
-
pep8 indentation is not a multiple of four
(Indentサイズを半角スペース4つから2個に変更すると出る)
という警告が至る所で出てウザいので、これを抑制するPycharmでの設定方法をチラシの裏しておきます。
設定方法
- Variable in function should be lowercaseを消す方法
-
File
→Setting
でInspections
を開き、PEP 8 coding naming convention viloation
のチェックを外す - pep8 indentation is not a multiple of fourを消す方法
-
File
→Setting
でInspections
を開き、右ペインの検索画面で、PEP 8 coding style viloation
を選択 -
Ignore errors
に、E111
を追加して、Apply
を実行
他の開発環境での同様の警告
- その他の開発環境でPEP8のLinterを使う場合にも、特定のErrorをIgnoreする設定は大抵あるはずです。例えばATOMのPEP8 Linterの場合
config.cson
に'ignoreErrorCodes': 'E111, E501'
などと記載しておけば良いみたいです
PEP8について補足
PEP8について
- PEP8はざっくり言うとPythonのCoding Ruleの事です。この記事がとても参考になります
- PEP8の日本語訳はこちらを参照
- PEP8のError Codeの一覧はこちらを参照
主要なCoding Rule
-
Indentについて
-
Space 4つで1つのindent(Tab)にする事を推奨
-
このerrorを抑制したい場合は、E111, E114をignore
-
関数名、変数名についての
-
関数名、変数名:全て小文字で
_
で区切る、を推奨 (set_stream_logger
など) -
クラス名:Upper Camel Caseを推奨 (
GetImageLocation
など) -
Pycharm以外ではFlake8(PEP8のWrap library)とpep8-naming(flake8のplugin)を入れて、N802/N806などをignoreする設定にすれば良いらしい(試した事無し)
-
1行の長さ
-
1行は79文字までを推奨
-
このerrorを抑制したい場合は、E501をignore
-
Import宣言について
-
1行 1 libraryのImportを推奨
-
このerrorを抑制したい場合は、E401をignore
-
演算子の前後の空白
-
=, ==, <, >, is, in, not in
などの演算子の前後には、1個スペースを入れる -
このerrorを抑制したい場合は、E221, E222をignore
PEP8 Check Toolについて
pep8
、autopep8
という2種類のToolがあります。
-
pep8
について - 修正箇所を教えてくれるToolです
-
pip install pep8
でInstallして、pep8 xxx.py --show-source
とチェックしてほしい*.pyを指定すると、以下の様にError codeと該当箇所を吐いてくれます - 特定のErrorを無視する場合には、
pep8 xxx.py --ignore=E111,E114,E501 --show-source
E111/114はIndent Error
, E501はLine Too Long
xxx.py:4:1: E302 expected 2 blank lines, found 1
def foo():
^
misc_test.py:5:9: E225 missing whitespace around operator
msgs=['Hello','World!!']
^
misc_test.py:5:18: E231 missing whitespace after ','
msgs=['Hello','World!!']
^
misc_test.py:9:10: W292 no newline at end of file
foo()
^
-
autopep8
について - 自動で修正までしてくれるToolです
-
pip install autopep8
でInstallして、autopep8 -i xxx.py
と自動修正してほしい*.pyを指定すると、問答無用にFileの中身を修正してくれます(ので実行時は注意です)