python - 安装 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"
解决方案
将你的 python 升级到至少 3.6
该版本的 pip 不支持 3.5 版本,因为较旧的 python 版本不包含 3.6 中引入的 f 字符串。
推荐阅读
- go - SQLMock 和 Gorm:模拟 Postgres 插入
- javascript - 在评论中添加前一段时间 React
- python-3.x - PyTorch 不能使用 float 类型,只能使用 long
- c++ - 为什么子类和父类中同名的成员变量被认为是不同的?这什么时候有用?
- php - PostgreSQL 上的教义:如果具有值数组的 jsonb 字段包含传递的值,如何选择一行
- php - 响应的 Ajax 登录问题
- c# - 启动 DnSpy 并立即附加到进程
- c# - 跳过等待会自动使异步代码同步吗?
- selenium - 如何从动态网页中提取信息
- reactjs - 相机上的 Threejs 丢帧向后移动