mirror of
https://github.com/docker/compose.git
synced 2025-04-08 17:05:13 +02:00
Detect conflicting version of the docker python SDK and prevent execution
until issue is fixed Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
c86faab4ec
commit
5895d8bbc9
@ -14,6 +14,30 @@ from distutils.spawn import find_executable
|
||||
from inspect import getdoc
|
||||
from operator import attrgetter
|
||||
|
||||
|
||||
# Attempt to detect https://github.com/docker/compose/issues/4344
|
||||
try:
|
||||
# A regular import statement causes PyInstaller to freak out while
|
||||
# trying to load pip. This way it is simply ignored.
|
||||
pip = __import__('pip')
|
||||
pip_packages = pip.get_installed_distributions()
|
||||
if 'docker-py' in [pkg.project_name for pkg in pip_packages]:
|
||||
from .colors import red
|
||||
print(
|
||||
red('ERROR:'),
|
||||
"Dependency conflict: an older version of the 'docker-py' package "
|
||||
"is polluting the namespace. "
|
||||
"Run the following command to remedy the issue:\n"
|
||||
"pip uninstall docker docker-py; pip install docker",
|
||||
file=sys.stderr
|
||||
)
|
||||
sys.exit(1)
|
||||
except ImportError:
|
||||
# pip is not available, which indicates it's probably the binary
|
||||
# distribution of Compose which is not affected
|
||||
pass
|
||||
|
||||
|
||||
from . import errors
|
||||
from . import signals
|
||||
from .. import __version__
|
||||
|
Loading…
x
Reference in New Issue
Block a user