Commit 757deb1a authored by Jason R. Coombs's avatar Jason R. Coombs Committed by GitHub

Merge pull request #1941 from joreiff/pr-easyinstall

Make easy_install command less strict (fixes #1405)
parents 5d17586a 6ee1a1ce
Improve editable installs with PEP 518 build isolation:
* The ``--user`` option is now always available. A warning is issued if the user site directory is not available.
* The error shown when the install directory is not in ``PYTHONPATH`` has been turned into a warning.
...@@ -157,19 +157,16 @@ class easy_install(Command): ...@@ -157,19 +157,16 @@ class easy_install(Command):
"allow building eggs from local checkouts"), "allow building eggs from local checkouts"),
('version', None, "print version information and exit"), ('version', None, "print version information and exit"),
('no-find-links', None, ('no-find-links', None,
"Don't load find-links defined in packages being installed") "Don't load find-links defined in packages being installed"),
('user', None, "install in user site-package '%s'" % site.USER_SITE)
] ]
boolean_options = [ boolean_options = [
'zip-ok', 'multi-version', 'exclude-scripts', 'upgrade', 'always-copy', 'zip-ok', 'multi-version', 'exclude-scripts', 'upgrade', 'always-copy',
'editable', 'editable',
'no-deps', 'local-snapshots-ok', 'version' 'no-deps', 'local-snapshots-ok', 'version',
'user'
] ]
if site.ENABLE_USER_SITE:
help_msg = "install in user site-package '%s'" % site.USER_SITE
user_options.append(('user', None, help_msg))
boolean_options.append('user')
negative_opt = {'always-unzip': 'zip-ok'} negative_opt = {'always-unzip': 'zip-ok'}
create_index = PackageIndex create_index = PackageIndex
...@@ -273,6 +270,9 @@ class easy_install(Command): ...@@ -273,6 +270,9 @@ class easy_install(Command):
self.config_vars['userbase'] = self.install_userbase self.config_vars['userbase'] = self.install_userbase
self.config_vars['usersite'] = self.install_usersite self.config_vars['usersite'] = self.install_usersite
elif self.user:
log.warn("WARNING: The user site-packages directory is disabled.")
self._fix_install_dir_for_user_site() self._fix_install_dir_for_user_site()
self.expand_basedirs() self.expand_basedirs()
...@@ -479,8 +479,9 @@ class easy_install(Command): ...@@ -479,8 +479,9 @@ class easy_install(Command):
self.cant_write_to_target() self.cant_write_to_target()
if not is_site_dir and not self.multi_version: if not is_site_dir and not self.multi_version:
# Can't install non-multi to non-site dir # Can't install non-multi to non-site dir with easy_install
raise DistutilsError(self.no_default_version_msg()) pythonpath = os.environ.get('PYTHONPATH', '')
log.warn(self.__no_default_msg, self.install_dir, pythonpath)
if is_site_dir: if is_site_dir:
if self.pth_file is None: if self.pth_file is None:
...@@ -1311,10 +1312,6 @@ class easy_install(Command): ...@@ -1311,10 +1312,6 @@ class easy_install(Command):
Please make the appropriate changes for your system and try again. Please make the appropriate changes for your system and try again.
""").strip() """).strip()
def no_default_version_msg(self):
template = self.__no_default_msg
return template % (self.install_dir, os.environ.get('PYTHONPATH', ''))
def install_site_py(self): def install_site_py(self):
"""Make sure there's a site.py in the target dir, if needed""" """Make sure there's a site.py in the target dir, if needed"""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment