aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/easy_install.py
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2008-01-19 02:55:03 +0000
committerPJ Eby <distutils-sig@python.org>2008-01-19 02:55:03 +0000
commit60cf2d31c8edb39b418f522ad935320c6da9c927 (patch)
tree0b107df453c60f90e6159d58aa56cc2bfcf28225 /setuptools/command/easy_install.py
parent7c4938d53774c51b441970e177ce72cc3bdf68ce (diff)
downloadexternal_python_setuptools-60cf2d31c8edb39b418f522ad935320c6da9c927.tar.gz
external_python_setuptools-60cf2d31c8edb39b418f522ad935320c6da9c927.tar.bz2
external_python_setuptools-60cf2d31c8edb39b418f522ad935320c6da9c927.zip
Fix interactions between the various "require" options,
so that downloads aren't repeated and needed eggs are always installed, even if they were downloaded to the setup directory already. (backport from trunk) --HG-- branch : setuptools-0.6 extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4060066
Diffstat (limited to 'setuptools/command/easy_install.py')
-rwxr-xr-xsetuptools/command/easy_install.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
index da8434c2..acf4fda7 100755
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -94,7 +94,7 @@ class easy_install(Command):
# Options not specifiable via command line
self.package_index = None
- self.pth_file = None
+ self.pth_file = self.always_copy_from = None
self.delete_conflicting = None
self.ignore_conflicts_at_my_risk = None
self.site_dirs = None
@@ -455,6 +455,11 @@ Please make the appropriate changes for your system and try again.
install_needed = install_needed or self.always_copy
install_needed = install_needed or os.path.dirname(download) == tmpdir
install_needed = install_needed or not download.endswith('.egg')
+ install_needed = install_needed or (
+ self.always_copy_from is not None and
+ os.path.dirname(normalize_path(download)) ==
+ normalize_path(self.always_copy_from)
+ )
if spec and not install_needed:
# at this point, we know it's a local .egg, we just don't know if
@@ -485,11 +490,6 @@ Please make the appropriate changes for your system and try again.
-
-
-
-
-
def process_distribution(self, requirement, dist, deps=True, *info):
self.update_pth(dist)
self.package_index.add(dist)
@@ -527,7 +527,7 @@ Please make the appropriate changes for your system and try again.
"Installed distribution %s conflicts with requirement %s"
% e.args
)
- if self.always_copy:
+ if self.always_copy or self.always_copy_from:
# Force all the relevant distros to be copied or activated
for dist in distros:
if dist.key not in self.installed_projects: