[尝试使用以下脚本添加大量隐藏的导入时,pyinstaller返回错误提示:
TypeError:不可散列的类型:'列表'
stuff = []
with open("warn.txt", 'r') as f:
lines = f.readlines()
for i in range(16, len(lines)):
content = (lines[i].split('-', 1))[0][21:-1]
if content != '':
if content[0] == '\'':
content = content[1:-1]
stuff.append(content)
是否有一种方法可以使用脚本而不是手动添加大量隐藏的导入内容?如果有帮助,warn.txt
文件第16行之后的行都应如下所示(当在PyCharm中运行时,代码会产生预期的输出,即模块名称列表):missing module named win32api - imported by pkg_resources._vendor.appdirs (delayed, conditional, optional)
写完这个问题后不久,我意识到我已经忽略了一个明显的问题。
问题来自分析的hidden-imports
行:hiddenimports=[stuff]
如您所见,如果我不太注意警告,我将列表stuff
放在两个方括号之间,因此使整个列表成为隐藏导入的一个元素。
如果有此问题,请确保进行检查,这将为您节省很多麻烦。