Python strftime in uuu del_uuuuu导致导入库错误

Python strftime in uuu del_uuuuu导致导入库错误,python,python-datetime,Python,Python Datetime,在测试以下python代码段时,我发现python2.7和python3.4都有错误: from datetime import datetime class Test(object): def __del__(self): print(datetime.now().strftime('%Y')) a = Test() python2.7出现错误: Exception RuntimeError: 'sys.meta_path must be a list of im

在测试以下python代码段时,我发现python2.7和python3.4都有错误:

from datetime import datetime

class Test(object):
    def __del__(self):
        print(datetime.now().strftime('%Y'))

a = Test()
python2.7出现错误:

Exception RuntimeError: 'sys.meta_path must be a list of import hooks' in <bound method Test.__del__ of <__main__.Test object at 0x7f151163b290> ignored Exception ignored in: <bound method Test.__del__ of <__main__.Test object at 0x7f9a140e1160>> Traceback (most recent call last): File "test.py", line 5, in __del__ File "<frozen importlib._bootstrap>", line 2237, in _find_and_load File "<frozen importlib._bootstrap>", line 2222, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 2155, in _find_spec TypeError: 'NoneType' object is not iterable
异常运行时错误:“sys.meta\u path必须是导入挂钩的列表”,这是
\uu del\uu
方法不好的原因之一。当Python解释器忙于自毁时,它们可以在解释器关闭期间被调用。这就像在你的房子被拆除时试图整理你的床。事实上,如果你明确删除对象或在函数中生成它,它会按预期工作。如果错误只是在解释器关闭时引起的,你应该在问题中提到这一点。这种行为是意料之中的。如果您在关闭上下文之外看到它,那么这种行为是不应该出现的-添加更多细节来说明如何复制它。它确实发生在解释器关闭时,在我的主对象的_del___方法中。这里的目标最初是在退出解释器之前编写一些lo文件(包括日期)。@Morian您真正想要的是注册一个atexit函数。这发生在对象/模块开始被破坏之前。