From 79408cbc6fa5d61b74b046105aee61f12311adc9 Mon Sep 17 00:00:00 2001 From: Marcus Smith Date: Wed, 23 Apr 2014 13:08:07 -0700 Subject: use copy2, not move, to ensure dirs are not copied --- pip/wheel.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pip/wheel.py b/pip/wheel.py index 82df2973f..4e9803f23 100644 --- a/pip/wheel.py +++ b/pip/wheel.py @@ -199,10 +199,14 @@ def move_wheel_files(name, req, wheeldir, user=False, home=None, root=None, srcfile = os.path.join(dir, f) destfile = os.path.join(dest, basedir, f) # directory creation is lazy and after the file filtering above - # to ensure we don't install empty dirs + # to ensure we don't install empty dirs; empty dirs can't be + # uninstalled. if not os.path.exists(destdir): os.makedirs(destdir) - shutil.move(srcfile, destfile) + # use copy2 (not move) to be extra sure we're not moving + # directories over; copy2 fails for directories. this would + # fail tests (not during released/user execution) + shutil.copy2(srcfile, destfile) changed = False if fixer: changed = fixer(destfile) -- cgit v1.2.1