我的问题如下: 我想创建一个可以创建其他可执行文件的脚本。这些新的可执行文件必须是独立的,因此它们不需要任何 DLL 等。 我知道这可以通过 PyInstaller 实现,但只能通过控制台/命令行实现。 所以本质上,我想做的是制作一个 python 脚本,导入 pyinstaller,创建另一个 .py 文件并使用 pyinstaller 将新脚本编译为 .exe,这样没有安装 python 的人就可以使用这个程序。
编辑:脚本本身应该只使用一个文件,因此它也可以是一个单文件可执行文件
最佳答案
假设您已经在 PYINSTALLER_PATH 中安装了 Pyinstaller(您应该第一次在发行版中调用Configure.py 脚本),Pyinstaller 通过调用 Makespec.py 从您的主脚本生成一个spec 文件。您可以添加一些标志来生成一个目录二进制发行版或一个文件。最后你必须使用规范文件调用 Build.py。
这很容易通过几个系统调用编写脚本。像这样的东西:
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)
您可以避免每次都生成规范文件并破解它,添加嵌入资源(即 xml 文件或配置)并指定一些其他标志。基本上这是一个Python文件,带有一些字典的定义。
我认为没有可以直接使用的 Pyinstaller 模块,但您可以查看 Build.py 并模仿其行为来执行相同的操作。 Build.py 是完成这个任务的主脚本。
关于python - 有没有办法在另一个 .py 文件中使用 PyInstaller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302806/