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

如何编写设置脚本使Python脚本无需重装依赖即可在Ubuntu环境运行

跨Windows/Ubuntu Python脚本免重装依赖解决方案

你的需求完全可以实现,目前有两种成熟的可行方案,同时你现有的检查脚本也存在适配问题,具体内容如下:

现有代码问题说明

你当前编写的setup.py存在两个明显问题:

  1. Ubuntu系统默认Python3对应的pip命令为pip3,直接调用pip会出现找不到命令的错误,导致逻辑执行失败
  2. 现有逻辑是检测到缺失依赖时联网下载安装,本身不符合你“不需要重新安装依赖”的预设需求

方案1:打包为独立可执行文件(最符合“复制即运行”需求)

这个方案不需要目标机器安装Python环境和任何依赖,直接拷贝二进制文件就能运行。
操作步骤:

  • 准备一套和目标Ubuntu版本、架构一致的运行环境(可以用虚拟机、Docker容器)
  • 将你的代码和依赖全部在该环境安装调试完成
  • 安装打包工具:pip3 install pyinstaller
  • 执行打包命令:pyinstaller -F 你的主脚本文件名.py
  • 打包完成后,取出dist目录下生成的二进制文件,拷贝到任意同架构Ubuntu环境即可直接运行。

方案2:源码+离线依赖包分发(需要一次轻量安装,保留源码)

如果需要保留脚本源码,可以把所有依赖的安装包提前打包和脚本一起分发,不需要目标机器联网下载。
操作步骤:

  • 同样先在适配的Ubuntu测试环境安装好所有依赖
  • 导出依赖列表:pip3 freeze > requirements.txt
  • 下载所有依赖的离线安装包到指定目录:pip3 download -r requirements.txt -d ./offline_pkgs
  • 将你的Python脚本、requirements.txt、offline_pkgs目录一起拷贝到目标Ubuntu机器
  • 执行离线安装命令即可完成依赖部署,无需联网下载:pip3 install --no-index --find-links=./offline_pkgs -r requirements.txt
  • 安装完成后即可正常运行脚本。

注意事项

  • 两种方案都需要打包环境和目标Ubuntu环境的架构(x86/ARM)、系统大版本一致,避免出现glibc版本不兼容、二进制包不匹配的问题
  • 若使用PyInstaller打包,建议在干净的Python虚拟环境中操作,避免把无关依赖打包进二进制文件,减小文件体积
  • 若修改原有检查脚本,建议把pip替换为sys.executable -m pip的调用方式,避免出现pip命令不匹配、虚拟环境调用错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:45:04