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

如何将.exe格式Python应用适配Ubuntu后打包Docker镜像并实现外部文件读写?

1 适配Ubuntu的程序转换与Docker镜像构建

你手上的.exe是Windows平台下的可执行文件,确实无法直接在Ubuntu系统运行,两种方案可选:

1.1 最优方案:直接基于源码构建镜像(无需单独打包可执行)

该方案步骤最少,适配性最高:

  • 先准备打包exe前的Python源码文件、依赖清单requirements.txt,如果没有依赖清单可在原开发环境执行pip freeze > requirements.txt生成
  • 在项目根目录编写Dockerfile,示例如下:
# 选用Ubuntu 22.04作为基础镜像
FROM ubuntu:22.04

# 安装Python3与pip,清理缓存减小镜像体积
RUN apt update && apt install -y python3 python3-pip && rm -rf /var/lib/apt/lists/*

# 设置容器内工作目录
WORKDIR /app

# 复制依赖清单并安装依赖
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt

# 复制Python源码到镜像内
COPY your_script.py .

# 容器启动默认执行的命令
CMD ["python3", "your_script.py"]
  • 执行镜像构建命令:docker build -t your_image_name .即可完成镜像制作

1.2 可选方案:打包为Ubuntu平台可执行文件后构建镜像

如果需要镜像内不携带Python运行环境,可先打包Linux版可执行文件:

  • 准备一个Ubuntu环境(虚拟机/临时容器均可),安装PyInstaller后执行pyinstaller -F your_script.py,生成的二进制可执行文件默认存放在dist目录下,该文件可直接在Ubuntu系统运行
  • 编写简化版Dockerfile:
FROM ubuntu:22.04
WORKDIR /app
COPY dist/your_script .
CMD ["./your_script"]
  • 同样执行docker build命令即可完成镜像构建
2 宿主机文件挂载方案

Docker提供绑定挂载功能,可直接将宿主机的目录映射到容器内部,无需修改镜像即可实现外部文件读写:

  • 先在宿主机上创建两个目录,例如./input(存放输入文件)、./output(存放输出结果)
  • 调整Python脚本的读写路径:统一从容器内的/app/input目录读取输入,将结果写入容器内的/app/output目录;如果不想修改脚本,也可以直接将宿主机目录映射到脚本中原有读写路径的位置
  • 运行容器时添加挂载参数,示例命令如下:
docker run -v ./input:/app/input -v ./output:/app/output your_image_name

后续更新输入文件时,只需将新文件放入宿主机的./input目录,重新运行容器即可,无需重建镜像或容器,输出结果会自动保存在宿主机的./output目录,不会随容器删除丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:45:02