Once I install python3-setuptools, even though the `docker` module now imports successfully, running `docker.from_env()` fails with the following:
Python 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import docker
>>> docker.from_env()
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 214, in _retrieve_server_version
return self.version(api_version=False)["ApiVersion"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/docker/api/daemon.py", line 181, in version
return self._result(self._get(url), json=True) ^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 46, in inner
return f(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 237, in _get
return self.get(url, **self._set_request_timeout(kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 486, in send
resp = conn.urlopen( ^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 791, in urlopen
response = self._make_request( ^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 497, in _make_request
conn.request(
TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/docker/client.py", line 96, in from_env
return cls(
^^^^
File "/usr/lib/python3/dist-packages/docker/client.py", line 45, in __init__
self.api = APIClient(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 197, in __init__
self._version = self._retrieve_server_version() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 221, in _retrieve_server_version
raise DockerException(
docker.errors.DockerException: Error while fetching server API version: HTTPConnection.request() got an unexpected keyword argument 'chunked'
> I can confirm however that docker-py is not compatible with urllib3 2.0. Since requests will soon allow it, docker-py should modify setup.py to use urllib3 >= 1.26.0, < 2.0.0 or fix the bug.
So, simply installing python3-setuptools won't be enough. The module code itself either needs patches, or it needs upgrading to a new upstream version. Per https://github.com/docker/docker-py/issues/3113#issuecomment-1536476705, the issue was fixed upstream starting with version 6.1.0.
It looks like things are worse than I thought.
Once I install python3-setuptools, even though the `docker` module now imports successfully, running `docker.from_env()` fails with the following:
Python 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] on linux python3/ dist-packages/ docker/ api/client. py", line 214, in _retrieve_ server_ version api_version= False)[ "ApiVersion" ]
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ python3/ dist-packages/ docker/ api/daemon. py", line 181, in version self._get( url), json=True)
^^^^ ^^^^^^^ ^^^ python3/ dist-packages/ docker/ utils/decorator s.py", line 46, in inner
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ python3/ dist-packages/ docker/ api/client. py", line 237, in _get _set_request_ timeout( kwargs) )
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^ python3/ dist-packages/ requests/ sessions. py", line 602, in get
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^ python3/ dist-packages/ requests/ sessions. py", line 589, in request
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^ python3/ dist-packages/ requests/ sessions. py", line 703, in send send(request, **kwargs)
^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^ python3/ dist-packages/ requests/ adapters. py", line 486, in send
^^^ ^^^^^^^ ^^^ python3/ dist-packages/ urllib3/ connectionpool. py", line 791, in urlopen
^^^^^^ ^^^^^^^ ^^^^^^ python3/ dist-packages/ urllib3/ connectionpool. py", line 497, in _make_request request( ) got an unexpected keyword argument 'chunked'
Type "help", "copyright", "credits" or "license" for more information.
>>> import docker
>>> docker.from_env()
Traceback (most recent call last):
File "/usr/lib/
return self.version(
File "/usr/lib/
return self._result(
File "/usr/lib/
return f(self, *args, **kwargs)
File "/usr/lib/
return self.get(url, **self.
File "/usr/lib/
return self.request("GET", url, **kwargs)
File "/usr/lib/
resp = self.send(prep, **send_kwargs)
File "/usr/lib/
r = adapter.
File "/usr/lib/
resp = conn.urlopen(
File "/usr/lib/
response = self._make_request(
File "/usr/lib/
conn.request(
TypeError: HTTPConnection.
During handling of the above exception, another exception occurred:
Traceback (most recent call last): python3/ dist-packages/ docker/ client. py", line 96, in from_env python3/ dist-packages/ docker/ client. py", line 45, in __init__
^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^ python3/ dist-packages/ docker/ api/client. py", line 197, in __init__ server_ version( )
^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^ python3/ dist-packages/ docker/ api/client. py", line 221, in _retrieve_ server_ version errors. DockerException : Error while fetching server API version: HTTPConnection. request( ) got an unexpected keyword argument 'chunked'
File "<stdin>", line 1, in <module>
File "/usr/lib/
return cls(
^^^^
File "/usr/lib/
self.api = APIClient(*args, **kwargs)
File "/usr/lib/
self._version = self._retrieve_
File "/usr/lib/
raise DockerException(
docker.
This is https:/ /github. com/docker/ docker- py/issues/ 3113, an issue reported about a year ago. Per the urllib3 maintainer, who commented on the bug:
> I can confirm however that docker-py is not compatible with urllib3 2.0. Since requests will soon allow it, docker-py should modify setup.py to use urllib3 >= 1.26.0, < 2.0.0 or fix the bug.
So, simply installing python3-setuptools won't be enough. The module code itself either needs patches, or it needs upgrading to a new upstream version. Per https:/ /github. com/docker/ docker- py/issues/ 3113#issuecomme nt-1536476705, the issue was fixed upstream starting with version 6.1.0.