如何用PyInstaller打包单文件exe时保留指定.py脚本?
保留指定Python脚本的可执行包构建方案(基于Python 3.9.4内置工具)
完全可行,你可以通过Python内置的zipapp模块打包核心代码为可执行归档,同时将qac_user_settings.py保留为外部脚本,具体操作如下:
调整入口文件
qac.py的导入逻辑:
为了让打包后的可执行文件能读取外部的qac_user_settings.py,需要在qac.py开头添加路径配置,确保Python能找到这个外部脚本:import sys import os # 将可执行文件所在目录加入模块搜索路径 sys.path.insert(0, os.path.dirname(os.path.abspath(sys.argv[0]))) # 现在可以正常导入外部的qac_user_settings.py import qac_user_settings用
zipapp打包核心代码:
打开命令行进入项目根目录,执行以下命令,将qac.py和qac_bin目录打包为可执行归档文件:# Windows系统 python -m zipapp -p "python.exe" -m qac:__main__ qac_app.pyz # Linux/macOS系统 python -m zipapp -p "/usr/bin/env python3" -m qac:__main__ qac_app.pyz最终部署:
将生成的qac_app.pyz和qac_user_settings.py放在同一目录下,直接运行qac_app.pyz即可(Windows下双击或用命令python qac_app.pyz,Linux/macOS下可直接执行./qac_app.pyz)。如果需要更接近exe的体验,Windows下可以写一个简单的批处理脚本qac_app.bat,内容为python qac_app.pyz,用户双击批处理即可运行。
如果一定要生成原生exe格式,由于Python内置库没有直接生成exe的工具,你可能需要使用第三方工具,但你提到无额外依赖,所以上述基于zipapp的方案更符合你的需求。
内容的提问来源于stack exchange,提问作者JohnyCapo
相关产品推荐
相关产品推荐

