编辑:如果我通过spyder运行以下代码两次,第二次运行它时会出现错误,第一次它总是有效:
import pythoncom
if __name__ == '__main__':
print("hallo")
这是错误:
File "C:\Users\Oliver\AppData\Local\Programs\Python\Python36-32\lib\site-packages\win32\lib\pywintypes.py", line 129, in __import_pywin32_system_module__
assert sys.modules[modname] is not old_mod
当我重新启动内核时,它会再次工作。另外,如果我直接使用 python 运行它,它总是有效。
最佳答案
(这里是 Spyder 维护者)此问题是由 Spyder 用户模块重新加载器 (UMR) 引起的,它会在我们的控制台中重新加载模块,以便可以在其中交互地获取更改。
要修复此问题,您需要将 pythoncom
添加到 UMR 黑名单模块列表中,方法是:
工具 > 首选项 > Python 解释器 > 设置 UMR 排除(不重新加载)模块
。
注意:如果您还想阻止我们的 UMR 在每次运行文件时显示重新加载的模块列表,您可以通过停用此选项来关闭其警告:
工具 > 首选项 > Python 解释器 > 显示重新加载的模块列表
关于python - 运行 pythoncom 代码时,Spyder 抛出 "assert sys.modules[modname] is not old_mod",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50439165/