You need to enable JavaScript to run this app. 使用stdeb为Python脚本项目构建Deb安装包时bdist_deb报错未生成deb文件
优惠活动
大模型
产品
解决方案
定价
更多

使用stdeb为Python脚本项目构建Deb安装包时bdist_deb报错未生成deb文件

构建失败根因定位

从运行日志可直接定位核心阻塞点与非阻塞问题:

  • 硬阻塞错误:dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
    stdeb自动生成的Deb构建控制文件,默认将build-essential:native列为强制构建依赖。此前的依赖校验未覆盖dpkg-buildpackage的强制构建依赖项,误判所有构建依赖已安装完成。该依赖缺失会导致dpkg-buildpackage直接中断流程,返回错误码3,也就是最终堆栈抛出CalledProcessError: 3的直接来源,流程根本无法执行到二进制打包的.deb生成步骤。
  • 非阻塞合规警告(不直接中断流程,但会导致生成的Deb包不符合Debian打包规范):
    • sdist阶段检测不到README、README.rst、README.txt、README.md任意一个标准说明文件
    • setup.py缺少必填的url元数据
    • setup.py填写了author字段,但未按规范配套填写author_email字段
    • dpkg构建阶段未检测到合法的维护人身份信息,默认填充为unknown <unknown@unknown>
分步修复操作
  • 安装缺失的系统层面构建依赖
    执行命令完成依赖安装:
    sudo apt update && sudo apt install build-essential debhelper dh-python
  • 补全setup.py的合规配置
    按规范修改后的完整配置如下:
    from setuptools import setup
    
    setup(
        name="testing_python_package",
        version=1.0,
        author="Lee",
        author_email="lee@example.com",
        url="https://example.com/testing_python_package",
        description="testing python stuff for deb package",
        long_description=open("README.md").read(),
        packages=["src"],
        entry_points={"console_scripts": ["pytesting=src.app:main"]},
    )
    
  • 补全项目缺失的标准文件
    在项目根目录新建README.md,写入项目相关说明内容,消除sdist阶段的文件缺失警告。
  • 可选:配置合法的Deb包维护人信息,消除身份信息警告
    提前设置环境变量:
    export DEBFULLNAME="Lee"
    export DEBEMAIL="lee@example.com"
    
  • 重新执行构建命令
    运行:sudo python3 setup.py --command-packages=stdeb.command bdist_deb
    构建完成后,生成的可安装.deb二进制包、源码包都会存放在项目根目录的deb_dist/文件夹中,可直接通过dpkg -i命令完成安装部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.12 15:45:04