gpt4 book ai didi

python - (VS 代码)Pylint 在导入模块时抛出语法错误,但在我运行代码时工作正常

转载 作者:行者123 更新时间:2023-12-05 02:49:53 27 4
gpt4 key购买 nike

我尝试导入的模块是 pyinputplus。我不知道为什么如果程序导入模块并正常使用其所有功能,它会显示错误。

这是错误信息:

Cannot import 'pyinputplus' due to syntax error 'invalid syntax (<unknown>, line 268)'pylint(syntax-error)

我可以使用它,因为它不会影响功能,但在我的 IDE 中工作时它确实让我烦恼并分散我的注意力。另外,这可能表明某些设置不正确。

最佳答案

问题是文件中行的顺序。

函数inputStr()的类型被正确识别

..... 表示行的 [snip]

def inputStr(
prompt="",
.....):
# type: (str, .....) -> Any
"""Prompts the user to enter .....
"""

对于 inputCustom() 类型识别不正确,因为类型行不正确

def inputCustom(
# type: (Callable, str, .....) -> Any
customValidationFunc,
prompt="",
.....):
"""Prompts the user to enter input. ....."""

它应该在参数列表之后。

def inputCustom(
customValidationFunc, prompt="", .....):
# type: (Callable, str, .....) -> Any
"""Prompts the user to enter input. ....."""

对函数inputNum()做同样的事情

您可以编辑 __init__.py 文件并将 2 个注释行移动到正确的位置。

然后 VSC 将在工具提示中显示类型。

我创建了一个 Issue at pyinputplus


编辑:

我已经了解了为什么 pylint 会显示这个神秘错误,问题是当您使用 type_comments=True 进行编译时,Python3.8 编译器将此报告为语法错误。 Pylint 首先尝试使用 type_comments=True 进行编译,但未正确测试 Python3.8 异常。

我写了一个replacement for astroid/builder.py::_parse_string() .该行不再报告为错误。也许当他们使用重写时,他们会为错误放置的类型注释添加错误。

关于python - (VS 代码)Pylint 在导入模块时抛出语法错误,但在我运行代码时工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63877895/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com