'Creates an InstallRequirement from a name, which might be a
requirement, directory containing \'setup.py\', filename, or URL.'

@classmethod
def from_line(cls, name, comes_from=None, prereleases=None):

    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 (link and (req is None)):
        url = link.url_without_fragment
        req = link.egg_fragment
        if ((link.scheme == 'file') and re.search('\\.\\./', url)):
            url = path_to_url(os.path.normpath(os.path.abspath(link.path)))
        if (link.ext == wheel_ext):
            wheel = Wheel(link.filename)
            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)
