- 前言
最近因为remote-ssh
从pycharm转到vscode开发, 再删掉pycharm强制使用vscode摸索了一周熟练之后发现vscode其实使用起来也很爽,一些踩坑和最佳实践方案汇总
环境
插件
- remote-ssh
- python (python语言支持扩展)
- pylance(微软提供的python language server)
- Markdown Preview Enhanced(markdown 扩展增强)
踩坑
python类型提示不起作用
Enumeration of workspace source files is taking longer than 10 seconds.
其实是pylance挂了, 原因是workspace打开的文件太多了, 解决方案在 workspce下增加pyrightconfig.json
,指定include
某些自定义模块目录,或者exclude
掉某些, 我的内容如下( 其他详细查看官网), 之后重启pylance(注: 如果pylance没有挂掉更改该配置会auto reload
的不用重启){ "include": [ "my-model", "my-query", "my-component", "my-quant", "my-bond" ] }
- ctrl + shift + p > Python language 查看pylance是否启动
- 查看pylance日志
- ctrl + shift + p > Python language 查看pylance是否启动
配置PYTHONPATH
- settings.json
- mac
{ "terminal.integrated.env.osx": { "PYTHONPATH": "${workspaceFolder}/src", } }
- win
{ "terminal.integrated.env.windows": { "PYTHONPATH": "${workspaceFolder}/src", } }
- linux
{ "terminal.integrated.env.linux": { "PYTHONPATH": "${workspaceFolder}/src", } }
- mac
python 代码格式化无效
格式化选择的 black
手动执行发现报错 ImportError: cannot import name '_unicodefun' from 'click' (/home/rss/anaconda3/envs/venv/lib/python3.8/site-packages/click/__init__.py)
根据 github:click:issue 描述,装 click==8.0.2
问题解决
workspace
{
"folders": [
{
"path": "."
},
{
"path": "v2_server"
},
{
"path": "celery_tasks"
}
],
"settings": {
"terminal.integrated.env.linux": {
"PYTHONPATH": "${workspaceFolder}",
}
},
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "Debug_Workspace",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false
}
]
}
}
settings
- format
使用black
进行格式化代码,插件版本要求python <= v2023.19.12911010
, 之后的版本去除了black的配置,可以安装配套的black-formatter
插件来进行格式化代码, 但是这个插件black的最小版本大于项目要求(black == 21.9b0),所以暂时还未升级python插件