我在 Python 3.8.1 上创建了一个简单的 Selenium Pytest 自动化脚本。运行脚本后,我看到以下错误:
Traceback (most recent call last):
.
.
.
Error messages
.
.
TypeError: required field "posonlyargs" missing from arguments
我用谷歌搜索发现这似乎是Python 3.8.1的问题。关于如何避免此错误有什么建议吗?我总是可以返回到以前的 Python 版本 (3.8.0),但我将其保留为最后一个选项。
最佳答案
此错误消息...
TypeError: required field "posonlyargs" missing from arguments
...暗示在 Python 3.8 上定义函数时参数中缺少 posonlyargs
深入研究
@carmenbianca 在这个 merge根据 Python 文档 ast.arguments
提到的内容已更改为也采用 posonlyargs
作为参数。不同parsers根据 Python 的基本版本加载。需要 Python 3.8 的解析器,该解析器将从 v36 解析器继承以适应合并的更改,以解决此问题 issue .
解决方案
此问题已通过以下方式解决:
- Python 3.8.0 beta 2 : bpo-37221 :新功能
PyCode_NewWithPosOnlyArgs()
允许创建类似PyCode_New()
的代码对象,但带有一个额外的 posonlyargcount 参数,用于指示仅位置参数的数量。 - Python 3.8.0 beta 3 : bpo-37593 :交换ast.parameters节点构造函数中posonlyargs和args参数的位置。
However, as per best practices you should upgrade to Python 3.8.1 final Release date: 2019-12-18
关于python - 类型错误 : required field "posonlyargs" missing from arguments error running a Pytest Script on Python 3. 8.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59564990/