Ошибка docker-py: NameError: имя 'Client' не определено

Я пытаюсь заставить работать docker-py и сталкиваюсь с фундаментальной проблемой, которая может быть вообще не связана с docker-py.

Я установил docker-py через pip (вот результат его повторного запуска - должен ответить на вопросы о версии):

>pip install docker-py                                                                                                                                                                                                     
Requirement already satisfied: docker-py in /usr/local/lib/python2.7/site-packages
Requirement already satisfied: docker-pycreds>=0.2.1 in /usr/local/lib/python2.7/site-packages (from docker-py)
Requirement already satisfied: backports.ssl-match-hostname>=3.5; python_version < "3.5" in /usr/local/lib/python2.7/site-packages (from docker-py)
Requirement already satisfied: ipaddress>=1.0.16; python_version < "3.3" in /usr/local/lib/python2.7/site-packages (from docker-py)
Requirement already satisfied: requests!=2.11.0,>=2.5.2 in /usr/local/lib/python2.7/site-packages (from docker-py)
Requirement already satisfied: six>=1.4.0 in /usr/local/lib/python2.7/site-packages (from docker-py)
Requirement already satisfied: websocket-client>=0.32.0 in /usr/local/lib/python2.7/site-packages (from docker-py)

Пытаюсь выполнить некоторые примеры кода (с http://containertutorials.com/py/docker-py.html), и у меня не получается прямо из ворот:

>python                                                                                                                                                                                                                     
Python 2.7.13 (default, Dec 17 2016, 23:03:43)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from docker import client
>>> cli = Client(base_url='unix://var/run/docker.sock')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Client' is not defined

Я получаю похожую ошибку, пытаясь использовать другой пример кода, который использует AutoVersionClient (client = AutoVersionClient(base_url='unix://var/run/docker.sock')) но это не удается с аналогичным AutoVersionClient не определено.

Это похоже на проблему конфигурации ядра в моей системе, но я не знаю, в чем проблема.

2 ответа

Клиент и клиент не одно и то же?

✗ python
Python 2.7.12 (default, Nov  8 2016, 15:40:43)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from docker import Client
>>> cli = Client(base_url='unix://var/run/docker.sock')
>>> from docker import client
>>>

Если вы установили docker-py 2.0 или новее, клиенты были переименованы. API низкого уровня теперь docker.APIClientне docker.Client,

Другие вопросы по тегам