环境:
- python 3.10.0
- pyinstaller 5.1
描述:
最近在使用 python3.10.0
写上位机时 甲方(@Young)要求先打包个半成品看看效果 .
但是使用 pyinstaller 4.10
打包时会提示 在 dis.py
里异常 IndexError: tuple index out of range
尝试升级 pyinstaller 至 5.1
. 但官方依然没有修复bug
就在快要降级python的时候找到了解决方案
方法:
找到...\Python\Lib\dis.py
文件,修改 _unpack_opargs
这个函数至如下
def _unpack_opargs(code):
extended_arg = 0
for i in range(0, len(code), 2):
op = code[i]
if op >= HAVE_ARGUMENT:
arg = code[i+1] | extended_arg
extended_arg = (arg << 8) if op == EXTENDED_ARG else 0
else:
arg = None
extended_arg = 0 #就是这句 原先没有
yield (i, op, arg)
完美解决了问题
原帖 : https://blog.csdn.net/weixin_41946088/article/details/121622392
...
刚解决完问题
然后又去github上翻了翻 发现这是python3.10.0的bug
使用matplotlib后打包会出现元组越界
只要升到python3.10.1就好了
但是为了不失去这难得的水贴机会 (懒)
原帖 : pyinstaller/pyinstaller#6301