def _venv_match(self, installed, requirements):
        if not requirements:
            return None if installed else []
        satisfying_deps = []
        for repo, req_deps in requirements.items():
            useful_inst = set()
            if repo not in installed:
                return None
            if repo == REPO_VCS:
                inst_deps = {VCSDependency(url) for url in installed[repo].keys()}
            else:
                inst_deps = {Distribution(project_name=dep, version=ver)
                             for (dep, ver) in installed[repo].items()}
            for req in req_deps:
                for inst in inst_deps:
                    if inst in req:
                        useful_inst.add(inst)
                        break
                else:
                    return None
            if useful_inst == inst_deps:
                satisfying_deps.extend(inst_deps)
            else:
                return None
        return satisfying_deps