|
|
@@ -0,0 +1,37 @@
|
|
|
+from __future__ import absolute_import
|
|
|
+from __future__ import print_function
|
|
|
+from __future__ import unicode_literals
|
|
|
+
|
|
|
+import subprocess
|
|
|
+import sys
|
|
|
+
|
|
|
+# Attempt to detect https://github.com/docker/compose/issues/4344
|
|
|
+try:
|
|
|
+ # We don't try importing pip because it messes with package imports
|
|
|
+ # on some Linux distros (Ubuntu, Fedora)
|
|
|
+ # https://github.com/docker/compose/issues/4425
|
|
|
+ # https://github.com/docker/compose/issues/4481
|
|
|
+ # https://github.com/pypa/pip/blob/master/pip/_vendor/__init__.py
|
|
|
+ s_cmd = subprocess.Popen(
|
|
|
+ ['pip', 'freeze'], stderr=subprocess.PIPE, stdout=subprocess.PIPE
|
|
|
+ )
|
|
|
+ packages = s_cmd.communicate()[0].splitlines()
|
|
|
+ dockerpy_installed = len(
|
|
|
+ list(filter(lambda p: p.startswith(b'docker-py=='), packages))
|
|
|
+ ) > 0
|
|
|
+ if dockerpy_installed:
|
|
|
+ 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 OSError:
|
|
|
+ # pip command is not available, which indicates it's probably the binary
|
|
|
+ # distribution of Compose which is not affected
|
|
|
+ pass
|