首页 > 解决方案 > 安装 docker 失败“如果安装 docker,请清理以前的 docker-py 包”,语法错误

问题描述

我目前正在尝试运行 ansible 剧本(此处:https ://github.com/forensic-architecture/devops ),安装此 docker 的首要任务之一是:https://github.com/angstwad/docker。 Ubuntu的。但是,这在“安装 docker 时清理以前的 docker-py 包”任务中一直失败,错误消息如下:

fatal: [ec2-IPXADDRESS-compute-1.amazonaws.com]: 
FAILED! => {"changed": false, "cmd": ["/usr/local/bin/pip", "uninstall", "-y", "docker-py"], 
"msg": "\n:stderr: Traceback (most recent call last):\n  
File \"/usr/local/bin/pip\", line 7, in <module>\n   from pip._internal.cli.main import main\n  
File \"/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/main.py\", line 58\n    
sys.stderr.write(f\"ERROR: {exc}\")\n                                   ^\nSyntaxError:
invalid syntax\n"}

我在“/usr/local/lib/python3.5/”没有文件,也没有 python 3.5,所以这让我很困惑。我的主机文件指向我拥有 python 的位置([myhost] ansible_python_interpreter=/Users/myname/.pyenv/shims/python3)。

我删除了它一直失败的任务并运行它以查看会发生什么,我只是在稍后收到相同的错误消息(在第一个剧本中的任务 [pip],而不是它完成的 angstwad.docker 安装)删除了清洁任务)。

我不确定该怎么做;如果需要我提供更多信息来帮助解决这个问题,请告诉我,因为我对此很陌生,所以不确定什么是相关的,什么不是。

安装 python 3.5 会有帮助吗?我尝试安装几个不同版本的 3.5,但不断收到此错误消息:

BUILD FAILED (OS X 11.3.1 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/jt/48lrg2192p5cld7sslf750km0000gn/T/python-build.20210522120347.5181
Results logged to /var/folders/jt/48lrg2192p5cld7sslf750km0000gn/T/python-build.20210522120347.5181.log

Last 10 log lines:
checking size of _Bool... 1
checking for uintptr_t... yes
checking size of uintptr_t... 8
checking size of off_t... 8
checking whether to enable large file support... no
checking size of time_t... 8
checking for pthread_t... yes
checking size of pthread_t... 8
configure: error: Unexpected output of 'arch' on OSX
make: *** No targets specified and no makefile found.  Stop.

更新

我昨天意识到 devops 存储库告诉你在 virtualenv 中运行它;我认为这可能是我遇到这个问题的原因,所以在其中重试了,因为希望这能对似乎是某种 python 不兼容错误进行排序。

但是,我仍然遇到同样的错误。如果有帮助,它在 -vvv 中。

fatal: [ec2-X.compute-1.amazonaws.com]: FAILED! => {
    "changed": false,
    "cmd": [
        "/usr/local/bin/pip3",
        "uninstall",
        "-y",
        "docker-py"
    ],
    "invocation": {
        "module_args": {
            "chdir": null,
            "editable": false,
            "executable": "pip3",
            "extra_args": null,
            "name": [
                "docker-py"
            ],
            "requirements": null,
            "state": "absent",
            "umask": null,
            "version": null,
            "virtualenv": null,
            "virtualenv_command": "virtualenv",
            "virtualenv_python": null,
            "virtualenv_site_packages": false
        }
    },
    "msg": "\n:stderr: Traceback (most recent call last):\n  File
 \"/usr/local/bin/pip3\", line 7, in <module>\n    from
pip._internal.cli.main import main\n  File
\"/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/main.py\", line
58\n    sys.stderr.write(f\"ERROR: {exc}\")\n
                                  ^\nSyntaxError: invalid syntax\n"

标签: pythondockeransible

解决方案


将你的 python 升级到至少 3.6

该版本的 pip 不支持 3.5 版本,因为较旧的 python 版本不包含 3.6 中引入的 f 字符串。


推荐阅读