如何使用PyInstaller仅生成.exe文件且不生成pycache、build、.spec文件并指定输出路径
PyInstaller 禁用缓存文件+自定义输出路径方案
完全可以通过参数配置和命令组合实现你的需求,具体方法如下:
配置参数说明
- 禁止生成
__pycache__目录:执行打包命令前设置环境变量PYTHONDONTWRITEBYTECODE=1,即可让Python跳过字节码缓存文件的生成。 - 自定义.exe输出路径:使用
--distpath 目标路径参数,最终打包生成的可执行文件会直接存储到你指定的路径下。 - 避免留存.spec格式文件:使用
--specpath 临时目录路径参数,将.spec文件生成到系统临时目录,打包完成后系统会自动清理临时目录内容,不会在当前工作目录留下.spec文件。 - 避免留存build文件夹:PyInstaller没有内置参数直接跳过生成build目录,你可以在打包命令后拼接删除命令,打包完成后自动删除该目录。
完整命令示例
Windows CMD 环境
set PYTHONDONTWRITEBYTECODE=1 && pyinstaller --onefile --noconsole --distpath D:\自定义输出路径 --specpath %temp% 你的脚本名.py && rmdir /s /q build
Windows PowerShell 环境
$env:PYTHONDONTWRITEBYTECODE=1; pyinstaller --onefile --noconsole --distpath D:\自定义输出路径 --specpath $env:TEMP 你的脚本名.py; Remove-Item -Recurse -Force build
Linux / macOS 环境
PYTHONDONTWRITEBYTECODE=1 pyinstaller --onefile --noconsole --distpath ~/自定义输出路径 --specpath /tmp 你的脚本名.py && rm -rf build
参数说明:如果你的脚本是命令行工具,不需要禁用黑框,可以删除
--noconsole参数;如果需要打包成多文件目录结构而非单exe,把--onefile替换为--onedir即可。
内容的提问来源于stack exchange,提问作者MOXIFIAX
相关产品推荐
相关产品推荐

