我最近学会了在Python中输入模块(https://docs.python.org/3/library/typing.html)并希望将它用于静态类型检查以及在VS Code中更好的智能感知,就像它适用于TypeScript一样,但我可以&#39 ; t似乎找到了实际上那样做的任何工具/插件。
如果有的话,我有哪些选择?
答案 0 :(得分:13)
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"
]
}
]
}
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上浪费周期 兼容性等。
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键,您就可以对当前文件进行完整的静态分析。