💻

パッケージのバイナリ内に組み込まれたpythonパスを直接書き換える

2023/11/23に公開

はじめに

pip等でパッケージをインストールした際、パッケージのexeファイル等のバイナリ内にpythonインタープリタの絶対パスが組み込まれます。普段の運用では特段問題はないですが、特別な事情で別のpython環境などで使用したい場合などには、指定先のパスにpythonが見つからずエラーとなってしまいます。
そう言ったケースでは、バイナリ値を直接書き換えることでエラーを回避することができます。
非常に簡単な作業ですが、備忘もかねて手順を残します。

なお、実行ファイルの書き換えについてはライセンス等に十分ご注意の上実施してください。

使用環境

OS: Windows10
Binary editor: xedit version 184

作業手順

0. パッケージをインストール

パッケージをインストールして、exeファイルを特定します。

pip install hoge_package

1. バイナリエディタをインストール

バイナリファイルを編集するためのバイナリエディタを準備します。
編集機能が付いていればなんでもいいですが、今回はwindows10に対応しているxeditを使用します。

https://freesoft-100.com/download/xedit/

2. バイナリエディタでファイルを開く

バイナリエディタで修正したい実行ファイルを指定します。

3. 変更したい個所を特定して書き換える

変更したい個所(Pythonパス)を特定して書き換えます。バイナリエディタの検索機能を使えば一発で見つけられます。

書き換え後、コマンド等が問題なく動けば成功です。

参考文献

https://www.ipentec.com/document/python-error-fatal-error-in-launcher-unacle-to-create-process-using-old-path

Discussion