无法使用pip安装docker-compose,“ImportError:No module named dockerpycreds”

我试图用pip安装docker-compose但是我得到这个错误:

 $ docker-compose 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 11, 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 6, in <module> from .. import auth File "/usr/local/lib/python2.7/dist-packages/docker/auth.py", line 6, in <module> import dockerpycreds ImportError: No module named dockerpycreds 

更新1:在安装docker_pycreds之后,正如一个答案所提到的那样,它导致了我另一个错误:

 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 11, 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 22, in <module> urllib3.connection.match_hostname = match_hostname AttributeError: 'module' object has no attribute 'connection' 

更新2:在pip install -U urllib3==1.14正如另一个答案指出的,错误更改为:

 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 13, in <module> from requests.exceptions import ReadTimeout ImportError: cannot import name ReadTimeout 

看起来你需要安装这个软件包。

 pip install docker_pycreds 

http://packages.ubuntu.com/zesty/python-dockerpycreds

https://github.com/shin-/dockerpy-creds/blob/master/dockerpycreds/constants.py

由于您使用的是Debian衍生版本,因此它将包含在您的dist-packages中。 有关dist / site-packages的详细信息,请参阅此文章。

dist-packages和site-packages有什么区别?

编辑:

你可能需要更新依赖关系。

 pip install urllib3==1.21 

要么

 pip install --upgrade urllib3 

和/或

 pip install --upgrade pip