VS Code中实现anki“代码补完”和“参数提示”功能
从 2.1.24 2.1.24 2.1.24版本开始,Anki支持代码补全和参数提示,搞定这俩功能,可以大幅提高开发效率。
代码补全(Code Completion):这个很好理解,就是你敲俩字母,编辑器就会弹出提示,选择你想敲的变量名、函数名等,按下回车键就会自动帮你补全。
或者你输入一个对象名后加点,自动显示可用的方法或属性。
参数提示(Parameter Hints):你敲个函数名,按下括号后,会弹出这个函数的参数类型提示。
这两项功能就像演讲者用的提词器一样,可以减少你的记忆负担。你演讲时得照着提词器把词念完不是?这个更先进,只需按下回车,后边不用念了,因此减少手动输入的代码量。
这俩功能在PyCharm实现起来很简单,可在VS Code就比较复杂了,这里讲下VS Code中的实现方法。
一、配置环境
要实现anki代码补完和参数提示,有两点硬性要求:
- 使用64位的Python(use 64 bit version of Python)。
- Python版本必须与Anki支持的版本相匹配(Python version must match a version the Anki version)。这里的匹配不说是Python版本必须得是Anki 内部使用的 Python 版本,而是要高于某某版本。所以,你下个最新的Python就是没问题的。
1.1 Anki支持的Python版本查询
方法一:
Anki 的 aqt
库(开发依赖包)的 PyPI 页面会标注兼容的 Python 版本:
- 访问 aqt 的 PyPI 页面。
- 查看 Requires Python 字段(如
>=3.9
)。
PyPI(Python Package Index)是 Python 的官方第三方软件包仓库,可以把它看成咱们手机里的应用商店。
方法二:
此方法属于装叉之法。
在Anki主界面中按Ctrl+Shift+;
打开调试控制台。
在控制台中输入:
import sys
print(sys.version) # 输出 Anki 内部使用的 Python 版本
按CTRL+回车键,即可输出Anki 内部使用的 Python 版本。
方法二:
在Anki中点击菜单【帮助】→【关于】,Python和PyQt的版本尽收眼底。
1.2 确认Python环境
打开终端(VS Code 内置终端或系统终端),输入以下命令检查Python信息:
python --version # 查看版本(需与Anki兼容),比如Python 3.11.5
python -c "import struct; print(struct.calcsize('P') * 8)" # 输出64表示64位
如果版本或位数不符,需从Python官网下载正确版本。
解释一下,这里所说的终端就是那个黑黑的命令行窗口,你可以在两个地方输入上面的命令。
- VS Code 内置终端
在菜单中点击View>Timinal
,或者按CTRL+`,即可打开VS Code的内置终端 - 系统终端
系统终端就是命令提示窗口,也就是CMD窗口。
可以在按Win+R
打开对话框,输入cmd打开;或者在Windows底部的搜索框中搜索cmd,按回车打开。
1.3 使用虚拟环境
虚拟环境是一个独立的Python运行环境,允许项目有独立的依赖,不与其他项目冲突。比如,每个项目可以使用不同版本的库,各干各的,互不干扰。
为了确保插件使用的库版本与Anki本身或其他插件不冲突,建议使用虚拟环境,这是python开发的常规做法。
在终端输入以下命令:
python -m venv anki-venv # 创建虚拟环境
anki-venv\Scripts\activate # 激活(Windows)
第1行命令是创建虚拟环境,运行后会在你输入命令所在的目录中建立一个文件夹。比如,你在D盘根目录下输入命令,就会在D盘根目录下建一个名为“anki-venv”的文件夹。这个文件夹相当于一个工程文件夹,你后面就可以在在VS Code打开这个文件夹,在这个文件夹中进行开发。因为创建虚拟环境时需要往这个文件夹中放各种文件,所以这条命令需要你等一段时间才能运行完成。
第2行命令是激活虚拟环境。如果输入命令后在终端弹出的目录前带有(anki-venv)
,就表示已经激活并进入虚拟环境了。比如在D盘下键入上面的命令,显示如下图:
如果是Linux/macOS系统,改用下面的代码:
python -m venv anki-venv # 创建虚拟环境
source anki-venv/bin/activate # 激活(Linux/macOS)
二、安装依赖包
Anki的代码库本身未直接提供类型注解,但通过PyPI发布的aqt
包附带了类型存根文件(.pyi
)。安装后,IDE(如VS Code、PyCharm)能解析这些文件,实现智能补全和参数提示。
要实现这个功能,需要从PyPI安装特定的包。
在激活的虚拟环境中执行以下命令:
pip install --upgrade pip # 升级 pip
pip install mypy aqt[qt6] # 安装 mypy 和 aqt(Qt6 版本)
这两行代码完成以下操作:
-
升级pip工具
第1行命令是将Python的包管理工具pip
升级到最新版本,这也是安装包时的常规操作,因为某些新库需要新版本的pip才能正确安装。 -
安装开发依赖包
第2行命令安装两个关键包:mypy
:静态类型检查工具,用于验证代码中的类型注解,帮助IDE提供更准确的补全和错误提示。aqt
:aqt是Anki的官方库,提供了访问Anki内部API的接口。aqt[qt6]
:[qt6]
是“额外依赖”标记,表示安装支持Qt6的版本,因为Anki的GUI部分使用了Qt框架。若需Qt5,可替换为aqt[qt5]
。安装这个库可以让开发者引用Anki的模块,从而在IDE中获得类型提示和代码补全。
如果网络较慢,可添加国内镜像源(如清华源):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mypy aqt[qt6]
安装文件还是比较大的,老金用pip install mypy aqt[qt6]
没能安装成功,改用上面的国内镜像源不一会儿就安装完了。
三、配置 VS Code
3.1 安装必要扩展
Python:提供基础 Python 支持。
Pylance增强类型提示和代码补全。一般安装了Python 扩展就会自动安装这个扩展。
Mypy(可选):集成静态类型检查。实际测试不装这个也能实现代码自动补全和类型提示。
安装扩展的方法很简单,在VS Code中点击左下角的小齿轮图标,点击Extensions,然后在搜索框中输入要安装的扩展名,在列表中点击Install就可以了。
3.2 选择 Python 解释器
在VS Code菜单中选择File>Open Folder...
(快捷键:CTRL+K CTRL+O),找到之前创建的anki-venv文件夹,打开。
按 Ctrl+Shift+P
打开命令面板,输入 Python: Select Interpreter
。
选择步骤 1 中创建的虚拟环境 anki-venv
。
3.3 启用类型检查
在 VS Code 设置(settings.json
)中添加:
{
"python.analysis.typeCheckingMode": "basic", // 或 "strict"
"python.analysis.diagnosticSeverityOverrides": {
"reportMissingTypeStubs": "none" // 忽略 aqt 的类型存根警告
}
}
四、功能测试
现在所有工作完成了,可以测试一下。
新建 Python 文件,如 test_anki.py
。
from aqt import mw # 导入 Anki 主窗口对象
from aqt.qt import QAction # 导入 Qt 类
mw.<光标停留此处应触发补全>
action = QAction("Test", mw) # 输入 QAction( 应提示参数类型
输入 mw.
后应弹出 Anki 主窗口的方法和属性提示。
输入 QAction(
应显示参数类型提示(如 parent: QObject
)。
如有提示弹出,说明安装成功。