0

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

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

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

from cdk_app.cdk_app_stack import Lemoncello

“cdk_app.cdk_app_stack”被 vscode 标记为未解析的引用。(但它运行正常。)

如果我将其更改为

cdk_app_stack import Lemoncello

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

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

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

谢谢大家。

4

1 回答 1

0

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

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

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

于 2019-08-25T03:52:18.463 回答