私は3つのスクリプトを持っていたとしましょう。 Main.py(すべてのインポートを持つ)、1.py(ランダムスクリプト)、2.py(ランダムスクリプト)選択した場所からのPythonモジュールのインポート
pyinstaller -F --onedir Main.py (80mb)
pyinstaller -F --onedir 1.py (80mb)
pyinstaller -F --onedir 2.py (80mb)
これは3つのフォルダを作成してから、1.exeと2.exeをすべての依存関係を持つメインフォルダにコピーするとうまく動作します。
2つの問題が存在している:
問題はサイズです。 1つのファイルでこれを30MBに減らし、1つのフォルダで80MBにします。
さらに重要なことに、exeではそのフォルダを残すことができません。私はPythonでショートカットを使うことに頼らざるをえなかった。
私はthisに従っていますが、これはおそらく回避策です。
私の質問は、pyinstallerを使って選択した場所からインポートファイルを読み込むにはどうすればよいのですか?
ロジック: コンパイルMain.py pyinstaller -F –onefile Main.py (15mb).
を使用してはC:\13
でC:\13\Main.exe
リンクすべてのexeのようなC:\13\
のでexeファイルルックスでフォルダを作成しますか? --runtime-tmpdir PATH
私は、exeファイルや"one dir"
フォルダからのインポートについてのドキュメントを見つけるのに苦労しています。私はどこでもexeを実行することができますので、取得場所から輸入を得ることはあまりありません。さらに、Pyinstallerのモジュールがこの混乱に加えて逆コンパイルされていないことがわかりにくいです。
多分...
pyinstaller -F --runtime-tmpdir C:\13 --onefile 2.py
pyinstaller -F --runtime-tmpdir C:\13 --onedir 3.py
何のディレクトリが作成されていない私にとってけど。選択した場所からインポートを取得するにはどうすればよいですか。
solution別の可能:
if getattr(sys, 'frozen', False):
os.path.join(sys._MEIPASS, "C:\aa")
をあなたがimageで見ることができるように、それはだけど、我々はから選択するいくつかのファイルがあるパンダを望んでいたと言うことができます...
pyinstallerのドキュメントには、同じ依存関係を共有する複数のexeファイルをパッケージ化する方法の詳細な章があります。https://pyinstaller.readthedocs.io/en/stable/spec-files.html#multipackage-bundles –
@FlorentB。 "この機能はPyInstaller 3.0リリースでは壊れています" –