当前位置: 首页 > news >正文

Python打包大模型文件以及使用Docker进行运行镜像

在 Python 里对大模型文件进行打包,可依据不同的使用场景与需求来选用合适的方法。下面为你介绍几种常见的打包方式。

1. 使用zipfile库进行压缩

zipfile是 Python 标准库的一部分,能把多个文件压缩成一个.zip文件。

python

import zipfile
import os
def zip_files(files, zip_name):
    with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for file in files:
            if os.path.isfile(file):
                zipf.write(file)
            elif os.path.isdir(file):
                for root, dirs, files in os.walk(file):
                    for file in files:
                        file_path = os.path.join(root, file)
                        zipf.write(file_path)
# 示例使用
files_to_zip = ['model_weights.h5', 'model_config.json']
zip_file_name = 'model_package.zip'
zip_files(files_to_zip, zip_file_name)

2. 使用shutil

shutil库提供了make_archive函数,可将目录或文件打包成常见的归档格式,如.zip.tar等。

python

3. 使用tarfile库(适用于 Unix/Linux 系统)

tarfile库可创建和读取.tar.tar.gz文件。

python

import tarfile
def make_tarfile(output_filename, source_dir):
    with tarfile.open(output_filename, "w:gz") as tar:
        tar.add(source_dir, arcname=os.path.basename(source_dir))
# 示例使用
source_directory = 'model_dir'
output_file = 'model.tar.gz'
make_tarfile(output_file, source_directory)

注意事项

  • 内存使用:大模型文件通常很大,在打包时要注意内存使用情况,防止内存溢出。
  • 压缩格式:依据实际需求选择合适的压缩格式,像.zip格式跨平台兼容性好,而.tar.gz在 Unix/Linux 系统中较为常用。
  • 分块处理:若文件特别大,可考虑采用分块处理的方式,防止一次性处理大量数据。

要使用 Docker 运行 Python 打包的 Docker 镜像,可按以下步骤操作:

4. 确认 Docker 已安装且运行

首先要保证 Docker 已经在你的系统上安装并且处于运行状态。你可以通过下面的命令来验证:

bash

5. 准备 Python 项目

假定你已经有一个 Python 项目,并且在项目根目录下有 Dockerfile。以下是一个简单的 Dockerfile 示例:

Dockerfile

6. 构建 Docker 镜像

在项目根目录下运行下面的命令来构建 Docker 镜像:

bash

这里,-t 用于指定镜像的标签(名字和版本),. 表示使用当前目录下的 Dockerfile 进行构建。

7. 运行 Docker 镜像

构建完成后,使用以下命令运行 Docker 镜像:

bash

如果你需要将容器内的端口映射到宿主机的端口,可以使用 -p 参数。例如,若 Python 应用监听的是 8000 端口,你可以将其映射到宿主机的 8080 端口:

bash

如果你希望容器在后台运行,可以使用 -d 参数:

bash

docker run -d -p 8080:8000 my-python-app:latest

8. 查看运行状态

你可以使用以下命令查看容器的运行状态:

bash

docker ps

9. 停止和删除容器

当你想停止正在运行的容器时,可以使用以下命令:

bash

docker stop <container_id>

若要删除已停止的容器,可使用:

bash

docker rm <container_id>

完整示例代码

以下是上述步骤中涉及的 Dockerfile 和示例 Python 脚本 main.py 的完整代码:

python-docker-examplePython Docker 示例代码

V1

生成 Dockerfile

生成 main.py

生成 run_docker.sh

按照以上步骤,你就能成功使用 Docker 运行 Python 打包的 Docker 镜像。

相关文章:

  • 六、Linux系统 DRM调试工具modetest
  • 【C++】vector的模拟实现和相关接口介绍
  • 通过通道扩展实现 NI-DAQmx 的同步与触发
  • Python FastAPI + Celery + RabbitMQ 分布式图片水印处理系统
  • 软件工程-UML
  • DEBUG:工具简介
  • Python----机器学习(线性回归:自求导的方法实现)
  • Redis 的哨兵模式
  • 蓝桥杯 01游戏
  • 数据结构 哈希表 字符串哈希
  • VMware安装Ubuntu实战分享
  • 【算法学习计划】贪心算法(下)
  • 在ensp进行OSPF+RIP+静态网络架构配置
  • [GESP202503 C++六级题解]:P11963:环线
  • 关于VMware Tools 不再随旧版客户机操作系统的 VMware Workstation 一起提供。
  • 高级java每日一道面试题-2025年3月22日-微服务篇[Nacos篇]-Nacos的主要功能有哪些?
  • TBKDVR硬盘录像机device.rsp命令执行漏洞
  • CISCO路由器配置DHCP中继
  • YOLOv12即插即用-Pconv(风车卷积)
  • QT自定义信号与槽
  • “免签圈”扩容,旅游平台:今年以来巴西等国入境游订单显著增加
  • 创同期历史新高!1至4月全国铁路发送旅客14.6亿人次
  • 市场监管总局召开平台企业支持个体工商户发展座谈会
  • 商人运作亿元“茅台酒庞氏骗局”,俩客户自认受害人不服“从犯”判决提申诉
  • 融创中国:境外债务重组计划聆讯定于9月15日召开
  • 周启鸣加盟同济大学,曾任香港浸会大学深圳研究院院长