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

Fedora 36运行docker-compose报错:ModuleNotFoundError: No module named 'compose'

解决Fedora 36上docker-compose的ModuleNotFoundError问题

我帮你分析下这个问题——你遇到的ModuleNotFoundError: No module named 'compose',主要是因为系统预装的docker-compose(版本1.29.2)和Fedora 36默认的Python 3.10存在兼容性冲突,或者你用pip安装的版本没有覆盖系统默认的执行路径,导致系统自带的docker-compose找不到正确的模块。下面给你几个可行的解决办法:

方法一:移除系统旧版,用pip重新安装(适配用户级环境)

  • 先卸载系统自带的docker-compose:
    sudo dnf remove docker-compose
    
  • 用Python3的pip安装docker-compose到用户目录(避免权限问题):
    pip3 install docker-compose --user
    
  • 把用户本地的bin目录加入环境变量(如果还没加的话),编辑你的~/.bashrc或~/.zshrc文件,添加一行:
    export PATH="$HOME/.local/bin:$PATH"
    
  • 刷新环境变量让修改生效:
    source ~/.bashrc
    
  • 最后验证安装是否成功:
    docker-compose --version
    

方法二:使用Docker官方的compose插件(推荐,更稳定)

现在Docker官方已经把compose整合为官方插件,适配最新系统,用法也更统一:

  • 先卸载旧的docker-compose:
    sudo dnf remove docker-compose
    
  • 安装官方的docker-compose-plugin:
    sudo dnf install docker-compose-plugin
    
  • 注意!安装后需要用docker compose(没有横杠)的命令格式,比如启动容器:
    docker compose up -d
    

方法三:修复系统自带版本的依赖

如果你想保留系统预装的docker-compose,可以尝试给系统级Python环境安装匹配的模块:

sudo pip3 install docker-compose==1.29.2

这样会把缺失的compose模块安装到系统级的Python库中,和系统自带的docker-compose版本匹配。

为什么之前pip install没解决问题?

因为默认pip install docker-compose会把模块安装到用户个人的Python库目录,而系统自带的/usr/bin/docker-compose调用的是系统级的Python环境,它找不到用户目录下的模块,所以要么替换掉系统版本,要么把模块安装到系统级环境才行。

内容的提问来源于stack exchange,提问作者Petr Hejčl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:10:28