我们从Python开源项目中,提取了以下19个代码示例,用于说明如何使用pip.wheel.Wheel()。
def from_line(cls, name, comes_from=None, prereleases=None): """Creates an InstallRequirement from a name, which might be a requirement, directory containing 'setup.py', filename, or URL. """ url = None name = name.strip() req = None path = os.path.normpath(os.path.abspath(name)) link = None if is_url(name): link = Link(name) elif os.path.isdir(path) and (os.path.sep in name or name.startswith('.')): if not is_installable_dir(path): raise InstallationError("Directory %r is not installable. File 'setup.py' not found." % name) link = Link(path_to_url(name)) elif is_archive_file(path): if not os.path.isfile(path): logger.warn('Requirement %r looks like a filename, but the file does not exist', name) link = Link(path_to_url(name)) # If the line has an egg= definition, but isn't editable, pull the requirement out. # Otherwise, assume the name is the req for the non URL/path/archive case. if link and req is None: url = link.url_without_fragment req = link.egg_fragment #when fragment is None, this will become an 'unnamed' requirement # Handle relative file URLs if link.scheme == 'file' and re.search(r'\.\./', url): url = path_to_url(os.path.normpath(os.path.abspath(link.path))) # fail early for invalid or unsupported wheels if link.ext == wheel_ext: wheel = Wheel(link.filename) # can raise InvalidWheelFilename if not wheel.supported(): raise UnsupportedWheel("%s is not a supported wheel on this platform." % wheel.filename) else: req = name return cls(req, comes_from, url=url, prereleases=prereleases)
def guess_name_version_from_filename(filename): if filename.endswith('.whl'): wheel = Wheel(filename) return wheel.name, wheel.version else: # These don't have a well-defined format like wheels do, so they are # sort of "best effort", with lots of tests to back them up. # The most important thing is to correctly parse the name. name = remove_extension(filename) version = None if '-' in name: if name.count('-') == 1: name, version = name.split('-') else: parts = name.split('-') for i in range(len(parts) - 1, 0, -1): part = parts[i] if '.' in part and re.search('[0-9]', part): name, version = '-'.join(parts[0:i]), '-'.join(parts[i:]) # possible with poorly-named files if len(name) <= 0: raise ValueError(f'Invalid package name: {filename}') # impossible assert version is None or len(version) > 0, version return name, version