You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PyInstaller制作不含Python环境的可执行文件?

使用PyInstaller打包不含Python环境与依赖的可执行文件

如果目标系统已经装好了对应版本的Python和所有需要的依赖包,完全可以让PyInstaller只生成一个轻量的启动器,直接调用系统本地的Python来跑你的脚本,具体操作如下:

核心操作步骤

  • 核心参数:--no-bundle-python
    这个参数是关键,它会让PyInstaller放弃打包Python解释器,转而使用目标机器上已安装的Python环境来执行脚本。

  • 排除所有依赖包
    既然目标系统已经有了所有依赖,你可以通过命令行参数或者spec文件批量排除不需要打包的包:

    1. 命令行直接排除:
      比如你的脚本依赖numpy、requests,直接在打包命令里加上--exclude-module:
      pyinstaller --no-bundle-python --exclude-module=numpy --exclude-module=requests your_script.py
      
      如果要排除所有第三方依赖和非必要标准库,也可以用--exclude-module=*(注意:如果脚本有自定义模块,别把它们排除了)。
    2. 通过spec文件精准控制:
      先生成spec文件:
      pyinstaller your_script.py
      
      打开生成的your_script.spec,找到excludes字段,把所有需要排除的依赖包加进去:
      a = Analysis(
          ['your_script.py'],
          pathex=[],
          binaries=[],
          datas=[],
          hiddenimports=[],
          hookspath=[],
          hooksconfig={},
          runtime_hooks=[],
          excludes=['numpy', 'pandas', 'requests'],
          win_no_prefer_redirects=False,
          win_private_assemblies=False,
          cipher=block_cipher,
          noarchive=False,
      )
      
      然后用spec文件重新打包:
      pyinstaller your_script.spec
      

注意事项

  • 目标系统的Python版本必须和你打包时用的版本一致,不然容易出现语法或兼容性问题
  • 确认目标系统的Python环境里已经装好了脚本所有依赖的包,且版本匹配
  • 如果脚本用到了相对路径,打包后运行exe时要注意工作路径的问题,必要时可以在脚本里处理路径逻辑

内容的提问来源于stack exchange,提问作者Manoj Upadhye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:40:31