diff --git a/roles/tox/library/tox_install_sibling_packages.py b/roles/tox/library/tox_install_sibling_packages.py
index 9851d5cfc..259c0a20d 100644
--- a/roles/tox/library/tox_install_sibling_packages.py
+++ b/roles/tox/library/tox_install_sibling_packages.py
@@ -200,30 +200,42 @@ def main():
                         root=sibling_python_packages[package.name]))
                 changed = True
 
-                log.append("Uninstalling {name}".format(name=package.name))
-                uninstall_output = subprocess.check_output(
-                    [tox_python, '-m', 'pip', 'uninstall', '-y', package.name],
-                    stderr=subprocess.STDOUT)
-                log.extend(uninstall_output.decode('utf-8').split('\n'))
                 found_sibling_packages.append(package.name)
 
-        args = [tox_python, '-m', 'pip', 'install']
-
         if constraints:
             constraints_file = write_new_constraints_file(
                 constraints, found_sibling_packages)
-            args.extend(['-c', constraints_file])
+
+        for sibling_package in found_sibling_packages:
+            log.append("Uninstalling {name}".format(name=sibling_package))
+            uninstall_output = subprocess.check_output(
+                [tox_python, '-m',
+                 'pip', 'uninstall', '-y', sibling_package],
+                stderr=subprocess.STDOUT)
+            log.extend(uninstall_output.decode('utf-8').split('\n'))
+
+            args = [tox_python, '-m', 'pip', 'install']
+            if constraints:
+                args.extend(['-c', constraints_file])
+            log.append(
+                "Installing {name} from {root} for deps".format(
+                    name=sibling_package,
+                    root=sibling_python_packages[sibling_package]))
+            args.append(sibling_python_packages[sibling_package])
+
+            install_output = subprocess.check_output(args)
+            log.extend(install_output.decode('utf-8').split('\n'))
 
         for sibling_package in found_sibling_packages:
             log.append(
                 "Installing {name} from {root}".format(
                     name=sibling_package,
                     root=sibling_python_packages[sibling_package]))
-            args.append('-e')
-            args.append(sibling_python_packages[sibling_package])
 
-        install_output = subprocess.check_output(args)
-        log.extend(install_output.decode('utf-8').split('\n'))
+            install_output = subprocess.check_output(
+                [tox_python, '-m', 'pip', 'install', '--no-deps',
+                 sibling_python_packages[sibling_package]])
+            log.extend(install_output.decode('utf-8').split('\n'))
     except Exception as e:
         tb = traceback.format_exc()
         log.append(str(e))