NameError python api“vishnubob/kinet”

2024-09-26 18:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着跑去了解vishnubob/kinet api的一切

下载后,我尝试运行示例脚本(也是在修复了几个语法错误后),我得到以下错误:

Traceback (most recent call last):
  File "example.py", line 31, in <module>
    pds = PowerSupply("192.168.1.121")
NameError: name 'PowerSupply' is not defined

我不知道为什么会发生这种情况,因为进口产品看起来不错(至少对我来说)

如果有人知道为什么或者能给我指出正确的方向,我将不胜感激


Tags: 脚本api示例mostexample错误callfile
1条回答
网友
1楼 · 发布于 2024-09-26 18:14:56

这里的线索是“修复语法错误”。这段代码是为Python2编写的,它使用了一个名为隐式相对导入的东西,这个东西在Python3中被删除了

from kinet import *

正在尝试从Python 3中的顶级包导入,而Python 2默认为首先从本地模块导入(kinet/kinet.py)。解决方法是将此更改为

from .kinet import *

然而,这导致了兔子洞的出现,因为kinet.py有更多的语法错误,在这些错误之后,它就以惊人的速度失败了

Traceback (most recent call last):
  File "example.py", line 31, in <module>
    pds = PowerSupply("192.168.1.121")
  File "./kinet/kinet.py", line 227, in __init__
    self.header = Header()
  File "./kinet/kinet.py", line 22, in __init__
    self._struct = struct.Struct(self.struct_format)
  File "./kinet/kinet.py", line 61, in __setattr__
    if key not in self.Keys:
  File "./kinet/kinet.py", line 56, in __getattr__
    if key not in self.Keys:
  File "./kinet/kinet.py", line 56, in __getattr__
    if key not in self.Keys:
  File "./kinet/kinet.py", line 56, in __getattr__
    if key not in self.Keys:
  [Previous line repeated 325 more times]
RecursionError: maximum recursion depth exceeded while calling a Python object

这是一段使用Python2.6中已经弃用的所有语法编写的糟糕代码。我会寻找Python3重写,而不是试图修复它

相关问题 更多 >

    热门问题