Vinay Sajip <vinay_sa...@yahoo.co.uk> added the comment: I can confirm that putting a list() around the generator allows the removal to proceed:
diff -r d2453f281baf Lib/packaging/install.py --- a/Lib/packaging/install.py Fri Jun 24 10:21:46 2011 +0100 +++ b/Lib/packaging/install.py Fri Jun 24 12:48:33 2011 +0100 @@ -389,7 +389,10 @@ dist = get_distribution(project_name, use_egg_info=True, paths=paths) if dist is None: raise PackagingError('Distribution "%s" not found' % project_name) - files = dist.list_installed_files(local=True) + # list_installed_files returns a generator, and we need the + # RECORD file itself closed so that we can move it - under Windows, + # you can't move an opened file + files = list(dist.list_installed_files(local=True)) rmdirs = [] rmfiles = [] tmp = tempfile.mkdtemp(prefix=project_name + '-uninstall') The error message does need fixing, though, for cases where something else has a distribution's files open. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12395> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com