Пример #1
0
Файл: req.py Проект: fdev31/pyg
 def install(self):
     self.success = False
     logger.info('Looking for {0} releases on PyPI', self.name)
     p = ReqManager(self)
     try:
         files = p.files()
     except (urllib2.URLError, urllib2.HTTPError) as e:
         raise InstallationError(repr(e.reason) if hasattr(e, 'reason') else e.msg)
     bad_eggs = []
     for pext in ('.tar.gz', '.tar.bz2', '.zip', '.egg'):
         for v, name, hash, url in files[pext]:
             if pext == '.egg' and not right_egg(name):
                 if args_manager['install']['force_egg_install']:
                     bad_eggs.append( (url, name, p.name, hash) )
                 continue
             if ext(name) not in ('.tar.gz', '.tar.bz2', '.zip', '.egg') + WINDOWS_EXT:
                 continue
             logger.info('Best match: {0}=={1}', self.name, v)
             try:
                 self._download_and_install(url, name, p.name, hash)
             except InstallationError:
                 logger.info('Trying another file (if there is one)...')
                 continue
             if not self.version:
                 self.version = v
             break
         if self.success:
             return
     if bad_eggs:
         self._check_bad_eggs(bad_eggs)
     if not self.success:
         raise InstallationError('Error: Cannot find files available for dowloading and installing')