【问题标题】:docker-compose gives error "ImportError: No module named ssl_match_hostname" when run as normal userdocker-compose 在以普通用户身份运行时出现错误“ImportError: No module named ssl_match_hostname”
【发布时间】:2017-03-31 18:28:59
【问题描述】:

我已经使用“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 卸载”,然后重新安装,但似乎没有任何解决方法。

我现在完全陷入困境 - 有什么想法吗?

【问题讨论】:

    标签: python docker pip docker-compose


    【解决方案1】:

    您必须使用此命令重新安装 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
    

    对我有用

    【讨论】:

    【解决方案2】:

    您应该检查 docker-compose 是否存在、是否已安装并正在运行:

    $ whereis docker-compose
    $ docker-compose --version
    

    通过运行检查是否存在符号链接pip -&gt; pip2.7pip -&gt; pip3.6

    $ sudo pip install docker-compose
    

    【讨论】:

      【解决方案3】:

      这发生在我更新到Python 3.10 后。 我通过重新安装docker-compose 来修复它:

      pip install docker-compose

      注意:在 Manjaro 上运行 yay -S docker-compose 对我不起作用。

      【讨论】:

        【解决方案4】:

        检查执行 ansible 作业的远程主机的权限。

        确保“其他”用户具有模块包的执行权限。

        sudo chmod -R  o=rx /usr/local/lib/python2.7/dist-packages/
        

        【讨论】:

          【解决方案5】:

          首先检查 /var/run/ 下是否有 docker sock 文件。

          # ls -l /var/run/docker.sock
          # docker info
          

          如果文件不存在,则重启 docker 服务。如果仍然不存在,请重新启动节点并查看是否有文件。

          【讨论】:

            【解决方案6】:

            也为我工作。

            问题 root@ashish:/DOCKER# docker-compose -v 回溯(最近一次通话最后): 文件“/usr/local/bin/docker-compose”,第 5 行,在 从 compose.cli.main 导入主要 ModuleNotFoundError: 没有名为“compose”的模块

            解决方案

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

            执行上述命令后,输出应如下所示。

            root@ashish:/DOCKER# docker-compose -v docker-compose 版本 1.13.0,构建 1719ceb

            谢谢 阿什·贾

            【讨论】:

              猜你喜欢
              • 2021-07-20
              • 1970-01-01
              • 2013-03-09
              • 1970-01-01
              • 2019-07-03
              • 2017-03-16
              • 2015-04-30
              • 2014-05-11
              • 2017-08-20
              相关资源
              最近更新 更多