python - 安装 docker-compose 时出错 (def _collate(*iterables, key=lambda a: a, reverse=False)
问题描述
docker-compose -v
在使用 apt-get install docker-compose 安装后检查/执行 cmd 时观察到以下错误。请建议如何解决这个问题?
Traceback (most recent call last):
File "/usr/local/bin/docker-compose", line 7, in <module>
from compose.cli.main import main
File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 23, in <module>
from ..bundle import get_image_digests
File "/usr/local/lib/python2.7/dist-packages/compose/bundle.py", line 12, in <module>
from .config.serialize import denormalize_config
File "/usr/local/lib/python2.7/dist-packages/compose/config/__init__.py", line 6, in <module>
from .config import ConfigurationError
File "/usr/local/lib/python2.7/dist-packages/compose/config/config.py", line 50, in <module>
from .validation import match_named_volumes
File "/usr/local/lib/python2.7/dist-packages/compose/config/validation.py", line 12, in <module>
from jsonschema import Draft4Validator
File "/usr/local/lib/python2.7/dist-packages/jsonschema/__init__.py", line 33, in <module>
import importlib_metadata as metadata
File "/usr/local/lib/python2.7/dist-packages/importlib_metadata/__init__.py", line 9, in <module>
import zipp
File "/usr/local/lib/python2.7/dist-packages/zipp.py", line 12, in <module>
import more_itertools
File "/usr/local/lib/python2.7/dist-packages/more_itertools/__init__.py", line 1, in <module>
from more_itertools.more import * # noqa
File "/usr/local/lib/python2.7/dist-packages/more_itertools/more.py", line 340
def _collate(*iterables, key=lambda a: a, reverse=False):
SyntaxError: invalid syntax
以下是安装 docker compose 以及 python、pip、docker repo 的 Ansible 代码:
- name: Install Python 2.7.12
raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
- name: Install pip
apt:
name: python-pip
update_cache: yes
state: latest
become: true
become_method: sudo
<code to add docker repo , docker package >
- name: Install Docker-py (pegged to version 1.9 to work around bug referenced at https://github.com/StanfordBioinformatics/loom/issues/205)
pip: name=docker
- name: Download and install docker-compose to /usr/local/bin
pip: name=docker-compose
解决方案
这个错误...
File "/usr/local/lib/python2.7/dist-packages/more_itertools/more.py", line 340
def _collate(*iterables, key=lambda a: a, reverse=False):
SyntaxError: invalid syntax
...表示代码使用的是适用于 Python 3 的语法,但您使用的是 Python 2。这可能是一个打包错误,但您在问题中没有提供足够的信息来解决这个问题。如果您想更新您的问题以指示您正在运行的发行版和版本,我们可以查看解决方案。
错误来自more-itertools
包。您可以通过运行来解决此特定问题:
pip install more-itertools==5.0.0
这将安装一个more-itertools
与 Python 2 兼容的版本。
推荐阅读
- python-3.x - 程序卡在通过 Pyserial 读取 arduino 的串行通信
- jquery - Ajax 无法在 Ubuntu 的 Apache 网络服务器上使用 CGI
- ios - macOS 上不存在 AVFAudio 框架会导致 iOS 应用出现警告(应用也应该在 AS Mac 上可用)
- azure-active-directory - 使用 Keycloak 和 Azure Active Directory 的 SSO
- python - 在 django 管理界面中使用外键作为列是否会为每一行创建一个新的数据库查询?
- python - 如何包含 if 语句满足的条件的最后一个实例?
- c# - 如何将引导模板添加到 ASP.net MVC 2 项目
- sql - 将两个单独的参数合二为一
- c# - 是否可以在一行中检测捕获组的组合和排列?
- android - Android studio创建项目时如何修改gradle版本