如何从当前目录运行Python?优化无Python环境的脚本启动速度
解决Python脚本启动缓慢的问题
Hey there! 我看你现在用复制整个Python3.6安装目录+bat脚本的方式给无Python环境的用户分享脚本,但启动慢得离谱——2-5分钟确实让人头疼。这个问题的根源在于你复制的是完整的Python安装包,里面塞满了大量非运行必需的文件(比如文档、测试套件、工具脚本、未用到的库等),启动时解释器要扫描这些冗余文件,加上磁盘IO的开销,自然拖慢了启动速度。
下面给你几个更高效的解决方案,按推荐程度排序:
1. 使用Python嵌入式分发包(最轻便的临时方案)
Python官方提供了专门为嵌入式场景设计的Embedded Distribution,体积小、无冗余,启动速度快很多:
- 下载对应版本的嵌入式包(Python3.6的话,找Windows x86/x64 Embedded Package)
- 解压到你的脚本所在目录,比如命名为
Python36_Embedded - 修改你的bat脚本,调用嵌入式包的Python:
Python36_Embedded\python.exe script.py %* - 如果你的脚本依赖第三方库,需要把库安装到嵌入式包的
Lib/site-packages目录,用这个命令:Python36_Embedded\python.exe -m pip install --target=Python36_Embedded\Lib\site-packages 你的依赖库名
2. 用PyInstaller打包成单EXE文件(最友好的用户体验)
如果想让用户完全不用关心Python环境,直接生成单文件可执行程序是最佳选择:
- 在你的开发环境安装PyInstaller:
pip install pyinstaller - 执行打包命令,把脚本和所有依赖(包括Python解释器)打包成单个EXE:
pyinstaller --onefile script.py - 打包完成后,
dist目录下的.exe文件就是成品,用户双击就能运行,启动速度比你原来的方法快N倍。 - 注意:如果你的脚本用到了外部资源文件(比如图片、配置),需要在打包时用
--add-data参数指定,或者在脚本里处理好资源路径。
3. 优化现有复制的Python目录(临时应急方案)
如果不想换方案,那就手动清理掉冗余文件,缩小目录体积:
- 删除
Docs、Tools文件夹(完全没用) - 删除
Lib目录下的test文件夹和所有你脚本用不到的标准库 - 删除
Scripts文件夹里除了必要工具之外的所有脚本 - 删除
DLLs目录下非必需的动态链接库(这个要小心,只删你确定没用的,比如一些冷门扩展的DLL)
清理完后,再测试启动速度,应该会有明显提升。
原来的方法之所以慢,就是因为完整的Python安装包有几百MB,启动时系统要加载和扫描大量无关文件,清理或换用轻量化的分发方式后,启动时间会降到几秒甚至更短。
内容的提问来源于stack exchange,提问作者O.D.P
相关产品推荐
相关产品推荐

