使用venv和语言服务器时,vscode python未解析对子文件夹中模块的引用



我选择使用Python语言服务器而不是Jedi。

我的项目根文件夹有一个名为"cdk_app"的子文件夹,该文件夹中有文件cdk_app_stack.py。该文件定义了类"Lemoncello">

在项目根文件夹中,我的文件app.py有这样一行:

from cdk_app.cdk_app_stack import Lemoncello

vscode将"cdk_app.cdk_app_stack"标记为未解析的引用。(但运行正常。)

如果我把它改成

cdk_app_stack import Lemoncello

(删除了文件夹限定符)vscode解析正常(并且运行正常)

这只是我使用项目venv时的一个问题。如果不是,则解析并运行两个语法。

当我使用venv指定子文件夹名称时,为什么引用无法解析?

谢谢大家。

问题涉及我的python站点包文件夹中的easy-install.pth。这个文件是由AWS CDK安装程序创建的(我相信)。它引用了venv子文件夹。这一切都很恰当,但Python语言服务器并不能很好地处理它。如果我删除了这个pth文件,问题就消失了。当然,这只是一种变通方法,Python语言服务器在这种情况下可能会更好地工作。

有关pth文件的不同语言服务器问题的一些讨论,请参阅https://github.com/microsoft/python-language-server/issues/537

要关闭语言服务器,请将vscode配置为"python.jediEnabled":true(这是默认值。)

最新更新