python - 以普通用户身份运行时,docker-compose 给出错误 "ImportError: No module named ssl_match_hostname"

标签 python docker pip docker-compose

我已经使用“pip2.7 install docker-compose”安装了 docker-compose,但是当我尝试以“普通”用户身份运行它时,我收到以下错误消息:

mike@hugin:~/Tobedeleted$ docker-compose  -v
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 17, in <module>
    from . import errors
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/errors.py", line 10, in <module>
    from docker.errors import APIError
  File "/usr/local/lib/python2.7/dist-packages/docker/__init__.py", line 2, in <module>
    from .api import APIClient
  File "/usr/local/lib/python2.7/dist-packages/docker/api/__init__.py", line 2, in <module>
    from .client import APIClient
  File "/usr/local/lib/python2.7/dist-packages/docker/api/client.py", line 11, in <module>
    from .build import BuildApiMixin
  File "/usr/local/lib/python2.7/dist-packages/docker/api/build.py", line 9, in <module>
    from .. import utils
  File "/usr/local/lib/python2.7/dist-packages/docker/utils/__init__.py", line 2, in <module>
    from .build import tar, exclude_paths
  File "/usr/local/lib/python2.7/dist-packages/docker/utils/build.py", line 4, in <module>
    from .utils import create_archive
  File "/usr/local/lib/python2.7/dist-packages/docker/utils/utils.py", line 18, in <module>
    from .. import tls
  File "/usr/local/lib/python2.7/dist-packages/docker/tls.py", line 5, in <module>
    from .transport import SSLAdapter
  File "/usr/local/lib/python2.7/dist-packages/docker/transport/__init__.py", line 3, in <module>
    from .ssladapter import SSLAdapter
  File "/usr/local/lib/python2.7/dist-packages/docker/transport/ssladapter.py", line 21, in <module>
    from backports.ssl_match_hostname import match_hostname
ImportError: No module named ssl_match_hostname

此用户是 docker 组的一部分,可以毫无问题地运行“docker ps”等。

如果我尝试运行“sudo docker-compose -v”,我会遇到同样的错误。

但是,如果我先运行“sudo su -”然后发出“docker-compose -v”,我会得到预期的输出。

root@hugin:~# docker-compose -v
docker-compose version 1.11.2, build dfed245

我已经尝试对 docker-compose、ssl_match_hostname 的各种和所有部分进行“pip 卸载”,然后重新安装,但似乎没有任何解决办法。

我现在彻底卡住了 - 有什么想法吗?

最佳答案

您必须使用此命令重新安装 docker-compose:

curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

对我有用

关于python - 以普通用户身份运行时,docker-compose 给出错误 "ImportError: No module named ssl_match_hostname",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43147387/

相关文章:

python - 如果 x 条目满足条件 python,则绘制 x-y 数据

python - 有条件地替换 NaN

docker - hostconfig.json 在哪里(Docker 桌面 + WSL2 环境)

python - 为什么 pip 会卸载所需的包?

python:互斥位置参数

python - cmdclass 在 Python setuptools 中有什么作用?

ssl - 谷歌云平台虚拟机 : https

asp.net - 是否有带有Nginx Ubuntu,Kestral,.net core 3.1的正式Docker镜像,并且自动更新合并为一个?

python - 无法使用 pip install 安装 pika

python - 有没有办法为基于平台的 Python 应用程序提供条件 requirements.txt 文件?