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

如何在Windows命令行执行podman-compose及解决运行报错

Windows命令行下podman-compose运行异常的解决办法

问题背景

已将Docker Desktop for Windows替换为Podman + Podman Desktop,并安装了podman-compose:

  • WSL Ubuntu发行版命令行中,podman和podman-compose均可正常运行
  • Windows cmd及PowerShell中能执行podman,但podman-compose最初不被识别为命令;配置后运行podman-compose --version出现如下报错:
(venv-podman) C:\Users\mmo>podman-compose --version
podman-compose version: 1.0.6
['podman', '--version', '']
Traceback (most recent call last):
  File "C:\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\mmo\venv-podman\Scripts\podman-compose.exe\__main__.py", line 7, in <module>
  File "C:\Users\mmo\venv-podman\lib\site-packages\podman_compose.py", line 2941, in main
    podman_compose.run()
  File "C:\Users\mmo\venv-podman\lib\site-packages\podman_compose.py", line 1406, in run
    self.podman.output(["--version"], "", []).decode("utf-8").strip()
  File "C:\Users\mmo\venv-podman\lib\site-packages\podman_compose.py", line 1098, in output
    return subprocess.check_output(cmd_ls)
  File "C:\Python310\lib\subprocess.py", line 420, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "C:\Python310\lib\subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Python310\lib\subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python310\lib\subprocess.py", line 1438, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

报错分析

从日志看,podman-compose自身能启动(已显示版本1.0.6),但在调用podman --version时触发文件找不到的错误。核心原因是podman-compose无法正确定位Windows系统下的podman可执行文件,可能是环境变量配置不全、路径指向错误或虚拟环境隔离导致。

解决步骤

1. 确认Podman路径已加入系统环境变量

  • Podman默认安装路径为C:\Program Files\RedHat\Podman
  • 检查系统PATH变量:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量的PATH中确认是否包含上述路径,若没有则添加,重启命令行窗口生效

2. 手动指定podman路径给podman-compose

  • 在Windows命令行执行where podman,确认输出为Windows本地路径(而非WSL路径)
  • 若podman-compose仍无法识别,手动设置环境变量指定podman完整路径:
    • PowerShell中执行:
      $env:PODMAN_CMD = "C:\Program Files\RedHat\Podman\podman.exe"
      
    • cmd中执行:
      set PODMAN_CMD=C:\Program Files\RedHat\Podman\podman.exe
      
    执行完成后再次测试podman-compose --version

3. 重新安装适配Windows的podman-compose

  • 若使用pip安装的版本存在兼容性问题,先卸载:
    pip uninstall podman-compose
    
  • 使用winget安装官方适配Windows的版本:
    winget install podman-compose
    
    安装完成后重启命令行测试

4. 排查虚拟环境的路径隔离问题

  • 当前使用的是虚拟环境venv-podman,虚拟环境可能隔离了系统PATH变量
  • 尝试在系统级Python环境安装podman-compose,或者将Podman路径添加到虚拟环境的PATH中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:17:44