gpt4 book ai didi

Python 将模块名称视为 'NoneType'

转载 作者:行者123 更新时间:2023-11-28 17:48:00 24 4
gpt4 key购买 nike

我有一段代码表现得很奇怪。

一开始,我导入了一个模块,它是 C 库的 python 绑定(bind)。

try:
import pyccn
except:
print "ERROR: PyCCN is not found"
exit(1)

稍后在我的代码中,我使用 pyccn 模块做了很多事情,并且它按预期工作(几乎)。现在在正常工作了一段时间后,它给了我错误:

 Traceback (most recent call last):
File "./ndn-ls-keys.py", line 185, in upcall
if kind == pyccn.UPCALL_CONTENT_UNVERIFIED:
AttributeError: 'NoneType' object has no attribute 'UPCALL_CONTENT_UNVERIFIED'

所以它说 'pyccn' 是 NoneType!!但它正在运行,我的意思是在错误发生之前多次调用了包含第 185 行的同一函数。而且错误一直发生。我没有重新定义“pyccn”,只是使用“pyccn.foo()、pyccn.bar() 等”。

发生这种情况的可能原因是什么?

附言错误发生在我的脚本末尾。如果我把 time.sleep(10) 放在那里,那么它会在 sleep 之后发生......

谢谢!

最佳答案

我以某种方式解决了这个问题。最初,在 PyCCN 的导入下方,我有两个其他导入:

    import xml.etree.ElementTree as ET
import time

所以导入对于这个文件是全局的。

一旦我将这两个导入移动到实际使用它们的函数中,问题就消失了!!此举是唯一的变化,我不知道此修复背后的原因。

也许由于 pyccn 模块中的某些问题导致导入之间存在一些冲突? (我假设标准库不对这个问题负责)。

关于Python 将模块名称视为 'NoneType',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237340/

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