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

M1芯片Rosetta模式下Python调用docker.from_env()报错求助

解决M1 Rosetta模式下Python Docker库连接失败的方案

1. 检查环境变量传递

  • 在运行Python脚本的终端执行以下命令,确认Docker环境变量存在:
    echo $DOCKER_HOST
    echo $DOCKER_SOCKET
    
    正常输出应为unix:///var/run/docker.sock(Docker Desktop默认路径)。如果终端能拿到变量但Python进程拿不到,需确保运行Python的环境(如IDE)开启了Rosetta模式并继承系统环境变量。

2. 修复Docker Socket权限

  • 查看socket权限:
    ls -l /var/run/docker.sock
    
    若当前用户不在docker用户组,执行以下命令添加(需重新登录终端生效):
    sudo usermod -aG docker $USER
    
    临时应急可直接开放权限(重启Docker后会重置):
    sudo chmod 666 /var/run/docker.sock
    

3. 强制指定Docker API地址

绕过from_env()的自动检测,直接指定socket路径:

import docker
# 手动指定Docker socket路径
client = docker.DockerClient(base_url='unix:///var/run/docker.sock')
# 测试连接是否正常
print(client.version())

4. 更新Python Docker库

旧版本库可能存在兼容性问题,执行更新:

pip install --upgrade docker

5. 确认终端/IDE在Rosetta模式下运行

  • 终端:右键终端图标 → 显示简介 → 勾选“使用Rosetta打开”,重启终端后再运行脚本。
  • IDE(如PyCharm):在运行配置中找到“使用Rosetta运行”选项并开启,确保IDE进程在Rosetta环境下执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:35:00