HOME>IT関連>Python>python310-pyinstaller-indexerror

Python3.10 pyinstaller実行時に発生するIndexErrorへの対処方法

Python

こんにちは。すたユキです。

これまで個人用PCでpyinstallerを試したときは何のエラーも出ず処理出来ていましたが、最近(2022年3月頃)社内の同じ部署のメンバーに配布する目的で会社のPCで実行した際にエラーが出て、exe化が上手くいきませんでした

少し調べてみると、どうやらPython3.10特有の問題らしく、stackoverflow内の回答の通りに試してみたら解決できたので共有したいと思います。

※2022.4.1現在、最新バージョン(3.10.4)では既に修正されていました。

【参考(原文)】

This is a Python 3.10 issue. To fix it: You have to go to the folder “Python310\Lib” and edit the file ‘dis.py’. In the ‘dis.py’ file you have to find this “def _unpack_opargs” and inside the else statement write a new line with this: “extended_arg = 0”, then save the file.

ここには、“Python310\Lib\dis.py”ファイルを開き、関数“def_unpack_opargs”を探し、その中のelseステートメント内に“extended_arg = 0”という1行を追加して保存するように書いてあります。

上記フォルダはご自身のPythonインストール先にありますので、不明な方はコマンドプロンプトを開き、下記を入力して調べてください。

上図のようにインストールされている全てのPythonが表示されますので、-3.10のexeファイルのあるフォルダが、上記で書かれているLibフォルダのある場所ですね。

dis.pyファイルをエディタで開き、下図の💡(電球)が付いている箇所にextended_arg = 0を追加して上書き保存します。これでエラーは解消されるはずです。

バージョン3.83.9でも発生しないようなので、ハマる方は稀かもしれませんが、同じ状況に陥ってしまった方はお試しください。