VSCode使用Python gettext时消除Pylance的'_'未定义警告咨询
解决Pylance提示
_ is not defined的全局消警方案 方案1:配置Pylance全局符号
在项目根目录创建pyrightconfig.json文件,添加以下内容,告知Pylance_是全局可用符号:
{ "globals": { "_": true } }
也可以直接在VSCode设置中操作:按下Ctrl+,打开设置,搜索「Pylance: Globals」,将_添加到全局符号列表,所有模块都会自动识别_的合法性。
方案2:添加全局类型声明文件
在项目中创建typings目录,新建gettext.pyi文件,写入:
def _(message: str) -> str: ...
接着在pyrightconfig.json中指定类型根目录:
{ "typeRoots": ["typings"] }
Pylance会自动加载该声明,将_识别为全局可用的翻译函数。
方案3:入口文件添加类型提示
在主模块src/testgettext.py中,调用gettext.install()后添加一行类型注释:
_: callable[[str], str]
如果项目有根目录的__init__.py,也可以把这行注释放在那里,确保所有子模块都能继承该声明。
以上方案均无需逐个修改模块,配置后即可消除所有相关警告。其中方案1操作最简便,方案2更符合Python类型规范,可根据项目需求选择。
内容的提问来源于stack exchange,提问作者dieterk
相关产品推荐
相关产品推荐

