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

如何在Poetry构建的Python包中嵌入ffprobe适配AWS Lambda

在Poetry构建的Python包中嵌入ffprobe二进制(适配AWS Lambda)

1. 调整项目目录结构

把对应Lambda架构的ffprobe二进制文件放到你的Python包目录下,建议建个bin子文件夹区分平台:

your-package/
├── your_package/
│   ├── __init__.py
│   ├── bin/
│   │   └── linux-x86_64/
│   │       └── ffprobe          # 存放x86_64架构的ffprobe二进制
│   │       └── ffprobe-arm64    # 若需支持arm64架构,单独存放对应二进制
│   └── your_code.py
└── pyproject.toml

注意:必须使用针对Lambda运行环境(Amazon Linux 2/2023)编译的二进制,不能直接用本地环境的文件。

2. 配置Poetry打包二进制文件

在pyproject.toml中添加配置,明确告诉Poetry要把这些二进制文件打包进wheel:

[tool.poetry]
name = "your-package"
# 保留你原有的其他配置

[tool.poetry.packages]
include = [
    { path = "your_package", format = "wheel" },
    { path = "your_package/bin/linux-x86_64/ffprobe", format = "wheel" },
    { path = "your_package/bin/linux-x86_64/ffprobe-arm64", format = "wheel" }  # 支持arm64时添加
]

# 兼容setuptools的配置(可选,适配部分旧构建流程)
[tool.setuptools.package-data]
your_package = ["bin/**/*"]

Poetry 1.8+版本中,packages.include配置已足够完成二进制文件的打包,setuptools.package-data可按需添加。

3. 在代码中调用嵌入的ffprobe

通过Python标准库获取包内二进制路径,并确保执行权限(Lambda环境默认可能没有):

import os
import importlib.resources
import subprocess
import platform

def get_ffprobe_path():
    # 根据Lambda架构自动匹配二进制
    arch = platform.machine()
    bin_name = "ffprobe-arm64" if arch == "aarch64" else "ffprobe"
    
    # 获取包内二进制文件的绝对路径
    with importlib.resources.path("your_package.bin.linux-x86_64", bin_name) as path:
        os.chmod(path, 0o755)  # 添加执行权限
        return str(path)

# 调用示例
ffprobe_path = get_ffprobe_path()
version_output = subprocess.run([ffprobe_path, "-version"], capture_output=True, text=True)
print(version_output.stdout)

4. 验证wheel包内容

构建wheel后解压检查,确认二进制文件已被正确打包:

poetry build --format wheel
unzip dist/your_package-*.whl -d temp_wheel
ls temp_wheel/your_package/bin/linux-x86_64/

若能看到ffprobe相关文件,说明打包成功。

5. Lambda容器镜像适配

如果使用容器Lambda,确保基础镜像与Lambda兼容,安装包时直接使用pip install your_package.whl,二进制文件会被正确安装到site-packages下的你的包目录中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:05:04