问题标签 [pylance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
253 浏览

python - 解包元组会导致元组大小不匹配错误

在对元组解包进行类型检查时,我在该程序上遇到 pylance 错误(基本设置)。这个想法是一个元组可以有 2 或 3 个特定类型的元素。

我应该如何去说服检查器这是正确的(没有#type ignore)?

0 投票
1 回答
1421 浏览

python - 使用 Django 时 VS Code 中的 pylance(reportMissingModuleSource) 错误

https://github.com/microsoft/pyright/blob/master/docs/configuration.md" 错误指向此 GitHub 自述文件,没有说明,也没有针对此错误给出解决方案 显示的错误消息

我再次重新安装 python 和 Django 仍然无法正常工作。我应该怎么办?

0 投票
0 回答
948 浏览

python - Pylance 报告GeneralyTypeIssues 预期的类类型,但收到“SQLAlchemy”

我正在寻找一种方法来修复来自 pylance 的此错误消息以及 Visual Studio Code 中的 SQLAlchemy。我可以在存根文件中写什么来消除这个错误?

编码

错误报告:

0 投票
0 回答
24 浏览

python-3.x - 如何可视化原始 builtin.py 文件

我很好奇 Python 的一些内置函数(如print(),input()等)是如何制作的,但是当我选择“Go to Definition”或“Go to Declaration”时,VSCode 将我带到一些不让我做的 Stub_files.pyi能够可视化函数的代码,但只有函数的参数。

PS:我认为这些按钮“转到...”是由扩展 Pylance 制作的。

我怎样才能让 VSCode 将我带到原始的 builtin.py 文件?

0 投票
1 回答
446 浏览

python - Pylance 报告UnknownMemberType,即使变量类型已知

我在 VSCode 上使用 Pylance,我得到这个变量的reportUnknownMemberType警告/错误,即使我可以看到它知道类型。

我对课程很陌生,所以如果有更好的方法可以做到这一点,请告诉我。我的目标是在子类中使用更多键来扩展父类字典。该程序实际上正在运行,父 dict 获取新的键、值对,但我想知道为什么会出现 Pylance 错误。

以下是这些类的继承链,名称简化但结构真实。涉及 3 个类,继承如 Base > SubClass > SubSubClass。Base 类位于一个单独的文件中:

其他 2 个类位于第二个文件中:

我最初的计划是只使用self.exportable[self.name]['properties'] = self.properties而不是那个 dict 合并,但我得到这个不能分配错误。

我也尝试在 SubSubClass 中使用 访问 SubClass self.exportablesuper().exportable虽然我认为没有必要,但是当我运行程序时,我得到一个错误,说super() has no attribute 'exportable'。对于它的价值,此super()尝试在不运行程序时也会从上面给出相同的“无法分配”错误。

使用第一个选项(dict 合并)和第二个选项(分配新的属性键和值),程序可以工作并且self.propertiesdict 成功地附加到继承的self.exportabledict 上。但我想知道我是否做错了什么,或者 Pylance 是否只是感到困惑。我认为它很困惑,因为在 SubClass 中它看到 dict 只是dict[str,Union[str,bool]]然后 SubClass B,而不是那个Union[str,bool]值,试图添加propertiesdict,它是一组 dict 本身?

当然,我可以让 Pylance 配置中的 reportUnkownMemberType 错误静音,但我担心我掩盖了一些我不知道的东西。

谢谢

0 投票
0 回答
347 浏览

python - 类型提示类参数 Pylance 的几种不同类型

当参数可以采用多个(15+)个不同的类时,输入提示的最佳方式是什么?

我有一个Path带有参数的类action,可以采取许多不同类型的动作。每个动作都派生自一个基类Action,并实现了该子类与其兄弟类相比特定的东西:

那里的大多数答案只是提到Union,但这仅适用于几种可能的类型。我不认为我应该在像actions: Union[ClassA, ClassB, ClassC, ..., ClassZ]. 无论如何,当我尝试时,Pylance 说的是Argument to class must be a base classUnknown type of base class, obscuring deriving type或类似的。

所以我想AllowedActions在第三个文件中创建一个类,它只是继承自所有可能的动作类。这个想法是让Path'saction=现在AllowedAction成为一个包罗万象的:

我不介意在Action这个AllowedAction声明中添加子类,Path我只能说action: AllowedAction. 但是,现在当我实例化Path并向它的action参数添加一些东西时Path(action=ActionA()),我得到了Argument of type "ActionA" cannot be assigned to parameter "action" of type "AllowedAction". 显然是因为子类ActionA与 catch-all / subchild 类不同AllowedAction,而是像 wth。

这让我相信PathI should just assign action: Any,但它似乎首先违背了类型提示的整个目的?

我不知道我是否应该以这种方式解决问题,或者我认为这一切都错了,应该重组继承或其他东西。有什么帮助吗?

0 投票
0 回答
481 浏览

python - Pylance 无法识别部分库

我目前正在使用带有pylance扩展的VS代码在python中编程,它工作得很好,除了我不能一次导入整个库,我必须导入各个函数,这对于学习目的来说有点烦人

在下面的屏幕截图中,我以相同的方式设置它们并且它以两种方式工作,但是当我放置“。”时无法看到库中可用的函数很烦人。在“pygame”之后。这里的问题是我可以看到第一行完全着色,黄色突出显示“load”,而下面的“image.load”不是。

两种功能

注意:我在其他库中也遇到过这个问题,numpy 来命名一个流行的

0 投票
0 回答
533 浏览

python-3.x - 为什么pylance无法解析本地相对路径导入(VSCode)?

环境:

  • 蟒蛇 3.6.9
  • VSCode
  • 皮兰斯

我在 VSCode 中的工作区结构是:

我已添加"python.analysis.extraPaths": ["./lib"]到位于 sync\.vscode 中的 settings.json。

问题是在sync.py 脚本中我在导入lib.queries 时遇到问题。如果我尝试from .lib.queries import *pylance 不会抱怨,但会因错误而失败attempted relative import with no known parent package

如果我改为使用from lib.queries import *python3 按预期工作,但 pylance 抱怨说Import "lib.queries" could not be resolved(PylancereportMissingImports)

我可以更改什么以使导入工作和 pylance 没有问题?

更新 如果我将 ./script-program-1 添加到 settings.json python.analysis.extraPaths 问题就消失了。我遇到的问题是这个项目可能有数百个“script-program-X”文件夹,并且所有这些文件夹都可能有自己的本地导入文件。在我使用的任何 VSCode 机器上为它们中的每一个更新这个 extraPaths 变量并不理想。

我试过使用像“./${relativeFileDirname}”这样的变量以及像“./**”和“./*”这样的通配符,但这些都不起作用。

我知道问题是由于工作区根目录是同步文件夹而不是 script-program-1 引起的,但这就是我希望它设置的方式。有人对此有解决方案吗?

0 投票
1 回答
284 浏览

python - Python TypeHint 一个根据输入返回不同类型的函数

我有一个像这样工作的方法,它通常用于返回一个Path.

在最后一行,我从 Pylance 收到以下消息:

(方法) is_file: () -> bool | 未知此路径是否为常规文件(对于指向常规文件的符号链接也为 True)。
无法访问类型“str”的成员“is_file”成员“is_file”未知PylancereportGeneralTypeIssues

有没有办法正确输入提示这种情况,以便 Pylance 知道filePath?或者我应该让它总是返回 Path 并有另一个方法调用get_filename将输出转换为字符串然后返回?

谢谢

编辑 1

我刚刚意识到另一个更常见的情况:

Here in pandas an input argument can change the output type and Pylance can also not deal with this. For Pylance to know series is a pd.Series you must do:

0 投票
1 回答
164 浏览

python - 在 Visual Studio Code 中使自定义 Python 模块位置可检测

我在 Visual Studio Code 中使用 Pylance 扩展。它可以根据我导入的模块给我关于不同函数名称及其属性等的提示。

它适用于使用pip install module. 但是,它无法检测到我在自定义位置从我自己的文件中导入的函数。我像这样导入文件:

因此,Pylance(或 Visual Studio Code)无法向我显示任何有关funcs. 我还将我的文件夹添加到环境路径变量中,但这也无济于事。

我应该怎么办?

谢谢。