VS代码中的Python类型检查

时间:2017-08-23 01:40:32

标签: python visual-studio-code

我最近学会了在Python中输入模块(https://docs.python.org/3/library/typing.html)并希望将它用于静态类型检查以及在VS Code中更好的智能感知,就像它适用于TypeScript一样,但我可以&#39 ; t似乎找到了实际上那样做的任何工具/插件。

如果有的话,我有哪些选择?

2 个答案:

答案 0 :(得分:13)

来自bash的

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
和配置

设置

  

./。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"
            ]
        }
    ]
}
,这只是Python 3!
  

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

     

是的,mypy也是。放松一下,你可以用所有流行的插件运行Flake8   即使你想分析
,在Python 3.5+下作为一个完美的工具   Python 2代码。这样您就可以解析所有新语法   支持Python 3,但也有效地支持所有Python 2语法   同一时间。

     

通过使代码专门用于Python 3.5+,我能够专注于   质量检查和重新使用新的所有不错的功能   发布(检查出pathlib)而不是在Unicode上浪费周期   兼容性等。

IDE& Linter Integrations

  

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

     

IDE& Linter积分

     

Mypy可以集成到流行的IDE中:

     
      
  • Vim:vim-mypy
  •   
  • Emacs:使用Flycheck和Flycheck-mypy
  •   
  • Sublime Text:SublimeLinter-contrib-mypy
  •   
  • Atom:linter-mypy
  •   
  • PyCharm:PyCharm集成了自己的PEP 484实现。
  •   
     

Mypy也可以使用flake8-mypy整合到Flake8中。

答案 1 :(得分:0)

我添加了以下代码

{
    "name": "mypy",
    "type": "python",
    "request": "launch",
    "module": "mypy",
    "args": [
        "${file}"
    ],
    "console": "integratedTerminal"
}
VS Code launch.json中的

,现在它在“ DEBUG”窗口中可见。只需按F5键,您就可以对当前文件进行完整的静态分析。