web-dev-qa-db-ja.com

Python VS Codeでの型チェック

私は最近、Python( https://docs.python.org/3/library/typing.html )でタイピングモジュールについて学び、それを使用することを期待しましたTypeScriptで動作するように、静的型チェックとVS Codeのより良いインテリセンスのために、しかし実際にそれを行うツール/プラグインを見つけることができないようです。

もしあれば、私のオプションは何ですか?

15
Alex Undefined

バッシュから

mkdir test
cd test
python3 -m venv .env
source .env/bin/activate
python -m pip install flake8
python -m pip install flake8-mypy
code ./

プラグインをインストールする

次に、これをVSCodeにインストールします https://marketplace.visualstudio.com/items?itemName=donjayamanne.python
and config

設定

./.vscode/settings.json

{
    "python.envFile": "${workspaceRoot}/.env",
    "python.pythonPath": "${workspaceRoot}/.env/bin/python",
    "python.linting.flake8Enabled": true,
    "python.linting.pylintEnabled": false
}

./.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python",
            "type": "python",
            "request": "launch",
            "stopOnEntry": false,
            "pythonPath": "${config:python.pythonPath}",
            "program": "${file}",
            "cwd": "${workspaceRoot}",
            "env": {},
            "envFile": "${workspaceRoot}/.env",
            "debugOptions": [
                "WaitOnAbnormalExit",
                "WaitOnNormalExit",
                "RedirectOutput"
            ]
        }
    ]
}

OMG、これはPython 3のみ!

https://pypi.python.org/pypi/flake8-mypy/17.3.

はい、mypyもそうです。リラックスして、すべての一般的なプラグインでFlake8を実行できます
ツールとしてPython 3.5+で分析したい場合でも)
Python 2コード。これにより、すべての新しい構文を解析できるようになります
Python 3でサポートされていますが、実質的にすべてのPython 2構文
同じ時間。

コードを排他的にPython 3.5+にすることで、
チェックの品質と新しいのすべてのニース機能の再利用
リリース(pathlibをチェックアウト)Unicodeのサイクルを浪費する代わりに
互換性など.

IDEとリンターの統合

https://github.com/python/mypy#ide--linter-integrations

IDEとリンターの統合

Mypyは一般的なIDEに統合できます。

  • Vim:vim-mypy
  • Emacs:FlycheckおよびFlycheck-mypyの使用
  • 崇高なテキスト:SublimeLinter-contrib-mypy
  • アトム:linter-mypy
  • PyCharm:PyCharmは、PEP 484の独自の実装を統合します。

Mypyは、flake8-mypyを使用してFlake8に統合することもできます。

15
qwabra

次のコードを追加しました

{
    "name": "mypy",
    "type": "python",
    "request": "launch",
    "module": "mypy",
    "args": [
        "${file}"
    ],
    "console": "integratedTerminal"
}

vS Code launch.jsonで、「DEBUG」ウィンドウに表示されます。 F5キーを押すだけで、現在のファイルの完全な静的分析を取得できます。

0
Vlad Bezden