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

Ubuntu22.04下ROS2 Python包colcon构建报错:找不到bdist_wininst模块

解决Ubuntu 22.04下ROS2 Python包colcon构建失败问题

问题分析

报错ModuleNotFoundError: No module named 'distutils.command.bdist_wininst'的核心原因是:bdist_wininst是Windows平台专属的distutils模块,Linux环境下默认不存在。高版本setuptools(60+)移除了对该模块的兼容处理,但colcon构建流程中的部分逻辑仍会尝试调用它,进而触发构建失败。

解决方案

方案1:降级setuptools到兼容版本

执行以下命令将setuptools降级到59.6.0版本(该版本仍保留对bdist_wininst的兼容逻辑):

pip3 install setuptools==59.6.0 --user

完成后重新执行构建命令:

colcon build --packages-select mypkgpython

方案2:检查并退出虚拟环境

如果当前激活了Python虚拟环境,可能导致系统distutils无法被正确调用。执行以下命令退出虚拟环境:

deactivate

之后重新运行colcon构建命令即可。

方案3:修改setup.py排除Windows相关构建选项

在你的Python包的setup.py中添加以下配置,明确跳过Windows平台的安装器构建:

from setuptools import setup

setup(
    # 保留原有包配置信息
    name='mypkgpython',
    version='0.0.0',
    packages=['mypkgpython'],
    # 添加以下选项
    options={
        'bdist_wininst': {'skip_install': True}
    },
    # 其他原有配置...
)

保存文件后重新执行构建命令。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:50:17