pyinstaller を使用して、いくつかの python スクリプトを exe ファイルに正常にバンドルしました。ただし、ローカル データ ファイルを使用する別の Python スクリプトで問題が発生しました。この質問と回答の PyInstaller 2.0 バンドル ファイルを --onefile として使用すると、ローカル ファイルを使用してスクリプトを取得できますが、エラーが発生します。
その中に「translate.py」というマスターpythonスクリプトがあり、さまざまな引数をとる「loader.py」という別のpythonスクリプト呼び出しを呼び出すいくつかのサブプロセスがあります。したがって、私の通常のサブプロセスは次のようになります
python.exe loader.py loader.config src_dir=data out_dir=sql tmp_dir=temp
私のpyinstallerバージョンでは、上記の質問からの回答を使用して、次のサブプロセス呼び出しを行いました
python.exe C:\Users\AppData\Local\Temp\_MEI70922\loader.py C:\Users\AppData\Local\Temp\_MEI70922\loader.config src_dir=dat
a out_dir=sql tmp_dir=temp
ただし、これはサブプロセスの実行に失敗し、次のエラーが発生します
no module named site
pyinstaller に必要なすべてのモジュールが含まれていないのではないかと思っています。
このようなすべてのpythonスクリプトを分析するために、仕様ファイルを微調整しました
a = Analysis(['c:\\temp\\translate.py','c:\\temp\\loader.py','c:\\temp\\prep.py','c:\\temp\\prep2.py'],
pathex=['C:\\Temp\\pyinstaller-2.0\\pyinstaller-2.0'],
hiddenimports=[],
hookspath=None)
しかし、再び、サイトという名前のモジュールがありません。
私は自分のコードがより良くなる可能性があることを知っていますが、他の誰かが loader.py を書き、私が translate.py を書き、それをすべて単純な exe ファイルにバンドルする必要があるため、行き詰まっています。
誰の助けにも感謝します