Pyinstallerを既にPYINSTALLER_PATHにインストールしている場合(初めてPythonディストリビューションにConfigure.pyスクリプトを呼び出す必要がある)、PyinstallerはMakespec.pyを呼び出してメインスクリプトからspecファイルを生成します。 1つのdirバイナリディストリビューションまたは1つのファイルを生成するフラグをいくつか追加できます。最後に、specファイルでBuild.pyを呼び出さなければなりません。
これは、2回のシステムコールで簡単にスクリプト化できます。あなたが埋め込まれたリソース(すなわち、xmlファイルまたは構成)を追加すると、他のいくつかのフラグを指定して、specファイルを毎回生成し、それをハックする避けることができ
import os
PROJECT_NAME = "test"
PROJECT_MAIN_SCRIPT = "main_script.py"
MAKESPEC_CMD = """%s %s\Makespec.py -X -n %s -F %s""" % (PYTHON_EXECUTABLE, PYINSTALLER_PATH, PROJECT_NAME, PROJECT_MAIN_SCRIPT)
BUILD_CMD = """%s %s\Build.py %s.spec""" % (PYTHON_EXECUTABLE, PYINSTALLER_PATH, PROJECT_NAME)
os.system(MAKESPEC_CMD)
os.system(BUILD_CMD)
:ような何か。基本的にはこれはPythonファイルであり、いくつかの辞書の定義があります。
Pyinstallerモジュールがありますが、直接使用することはできませんが、Build.pyを見てその動作を模倣して同じことをすることができます。 Build.pyはトリックを行う主なスクリプトです。
セットアップスクリプトなしでcx_freezeを使用する方法はありますか? Pythonをインストールせずに.pyを.exeにコンパイルできるようにしたいと考えています。 –
これは私が引用した節で強調したものです。あなたはモジュールのソースをつかんで直接使用する必要があります。 –
私は "import cx_Freeze"を実行して、main.pyにコマンドライン引数をシミュレートさせることができますか?それで、すべての引数を通常どおりに返しますが、コマンドラインから解析しませんか? –