Based on my relatively quick analysis it would appear that there are 2 packages for this project on PyPI: one for v1.x and one for v2.x. At some point in the middle - perhaps in v2.0 - the name of the package was renamed from 'docker-py' to 'docker'. Typically this would not cause a problem since the two packages have unique names and thus should be able to be installed side-by-side, however from what I can tell v1 of the project installs to the same target folder as v2 (ie: site-packages/docker) which can cause all sorts of packaging conflicts. For a trivial example, simply try the following:
pip install docker
python -c 'from docker import APIClient' # Operation succeeds
pip install docker-py
python -c 'from docker import APIClient' # Operation fails
I hit this problem recently while working on a new Python project which uses the newer 'docker' package, but I attempted to install another 3rd party lib which transitively depends on 'docker-py'. Install it over top of my current runtime environment essentially corrupted my environment. Said project is already being updated to work with 'docker' but the underlying compatibility problems between 'docker' and 'docker-py' really should be resolved to avoid problems like this in other packages.
Based on my relatively quick analysis it would appear that there are 2 packages for this project on PyPI: one for v1.x and one for v2.x. At some point in the middle - perhaps in v2.0 - the name of the package was renamed from 'docker-py' to 'docker'. Typically this would not cause a problem since the two packages have unique names and thus should be able to be installed side-by-side, however from what I can tell v1 of the project installs to the same target folder as v2 (ie: site-packages/docker) which can cause all sorts of packaging conflicts. For a trivial example, simply try the following:
I hit this problem recently while working on a new Python project which uses the newer 'docker' package, but I attempted to install another 3rd party lib which transitively depends on 'docker-py'. Install it over top of my current runtime environment essentially corrupted my environment. Said project is already being updated to work with 'docker' but the underlying compatibility problems between 'docker' and 'docker-py' really should be resolved to avoid problems like this in other packages.