这还不是一个真正的答案,但它可能提供了找到答案的第一步。在
下面是我在对这个问题的第一个评论中建议的最小测试用例。它只测试一个问题:在创建QApplication之后调用importlib.import_module是否会使解释器挂在系统上?注意,目前,它只尝试从python标准库导入一个模块。一次只进行一步是非常重要的,并且要小心避免引入任何潜在的混淆变量。在
请完全按照下面的说明运行这个脚本,并将输出添加到您的问题中。(即使选项2没有挂起,sys.path的详细信息也可能是相关的)。在import sys, importlib
from PyQt5 import QtWidgets
print('Sys Path:')
print(' %s\n' % '\n '.join(sys.path))
mod = None
modname = 'collections.abc'
# modname = 'PyQt5.Qt'
if sys.argv[-1] == '1':
print('Importing Before...\n')
mod = importlib.import_module(modname)
app = QtWidgets.QApplication(sys.argv)
elif sys.argv[-1] == '2':
print('Importing After...\n')
app = QtWidgets.QApplication(sys.argv)
mod =