pipenv icon indicating copy to clipboard operation
pipenv copied to clipboard

Issue installing "git+..." packages

Open lewiswolf opened this issue 11 months ago • 19 comments

I'm currently unable to install anything from a github repository.

pip install "git+https://github.com/lewiswolf/graphs.git#egg=graphs"

Results in:

Installing git+https://github.com/lewiswolf/graphs.git#egg=graphs...
Resolving git+https://github.com/lewiswolf/graphs.git#egg=graphs...
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/bin/pipenv", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/cli/options.py", line 58, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/cli/command.py", line 209, in install
    do_install(
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 255, in do_install
    added, cat, normalized_name = project.add_package_to_pipfile(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/project.py", line 1167, in add_package_to_pipfile
    name, normalized_name, entry = self.generate_package_pipfile_entry(
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/project.py", line 1147, in generate_package_pipfile_entry
    entry["ref"] = vcs_parts[1].split("#", 1)[0].strip()

And both pip install "git+https://github.com/lewiswolf/graphs.git@master#egg=graphs" and pip install "git+https://github.com/lewiswolf/graphs.git" results in:

Installing git+https://github.com/lewiswolf/graphs.git...
Resolving git+https://github.com/lewiswolf/graphs.git...
⠋ Installing...INFO:pipenv.patched.pip._internal.vcs.git:Cloning https://github.com/lewiswolf/graphs.git to /var/folders/6w/mgc4qy2n69b8cc1nszttrrsr0000gn/T/tmpycprpo8n
INFO:pip.subprocessor:Running command git clone --filter=blob:none https://github.com/lewiswolf/graphs.git /var/folders/6w/mgc4qy2n69b8cc1nszttrrsr0000gn/T/tmpycprpo8n
INFO:pip.subprocessor:Cloning into '/var/folders/6w/mgc4qy2n69b8cc1nszttrrsr0000gn/T/tmpycprpo8n'...
⠼ Installing None...INFO:pipenv.patched.pip._internal.vcs.git:Resolved https://github.com/lewiswolf/graphs.git to commit 855109828a26129f513965f6b32f682744613e03
⠴ Installing None...Error: Traceback (most recent call last):
  File 
"/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/routines/inst
all.py", line 255, in do_install
    added, cat, normalized_name = project.add_package_to_pipfile(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/project.py", 
line 1167, in add_package_to_pipfile
    name, normalized_name, entry = self.generate_package_pipfile_entry(
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/project.py", 
line 1114, in generate_package_pipfile_entry
    req_name = determine_package_name(package)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/usr/local/Cellar/pipenv/2023.8.26/libexec/lib/python3.11/site-packages/pipenv/utils/depende
ncies.py", line 744, in determine_package_name
    raise ValueError(f"Could not determine package name from {package}")
ValueError: Could not determine package name from git+https://github.com/lewiswolf/graphs.git

✘ Failed adding package to Pipfile

I've also tried this with other git repositories and had the same results.

lewiswolf avatar Sep 01 '23 10:09 lewiswolf

Its kind of two things, we are requiring you supply a ref to the branch so in your case git+https://github.com/lewiswolf/graphs.git @master and because your setup.py is more complicated it breaks our ast parser for getting the package name (since the egg is not a requirement). Since your example has the name as a var, we should extend our ast parser logic to consider this, but also you should consider migrating away from complicated setup.py.

matteius avatar Sep 01 '23 10:09 matteius

I opened a PR that solves your example, but needs more testing/review -- also still requires you to specify the ref in the git url though.

matteius avatar Sep 01 '23 10:09 matteius

As in I should just use:

setup(
    name='package-name',
)

? The other package I tried it with uses scikit-build, I don't know if this will also cause any issues? https://github.com/lewiswolf/kac_drumset/blob/master/setup.py

lewiswolf avatar Sep 01 '23 11:09 lewiswolf

The complex part of my setup.py files is that it reads the packages directly from the Pipfile, avoiding the need for an additional requirements.txt.

lewiswolf avatar Sep 01 '23 11:09 lewiswolf

As in I should just use:

setup(
    name='package-name',
)

? The other package I tried it with uses scikit-build, I don't know if this will also cause any issues? https://github.com/lewiswolf/kac_drumset/blob/master/setup.py

@lewiswolf That is what I opened a PR for that it should be able to infer the variable when its present in the file -- can you check against the above tagged PR?

matteius avatar Sep 06 '23 00:09 matteius

Hi @matteius,

The fix you pushed worked for the repo I first mentioned in this thread, but not for the second.

pipenv install "git+https://github.com/lewiswolf/kac_drumset.git@master"

results in:

ERROR: No matching distribution found for kac-drumsetre

I am getting very similar errors also when installing another package from a local source: https://github.com/lewiswolf/hearing-from-within-a-sound/tree/master/python

pipenv install -e ./kymatio

results in:

ValueError: Could not determine package name from file:///Users/lewiswolstanholme/Desktop/hearing-from-within-a-sound/python/kymatio

lewiswolf avatar Sep 09 '23 20:09 lewiswolf

@lewiswolf your setup by is probably too complicated for the editable install issue, you will have to supply the package name yourself with pipenv install package_name @ -e ./kymatio

For the other example I could not reproduce on 2023.9.8

matte@LAPTOP-N5VSGIBD MINGW64 ~/Projects/pipenv-triage/issue-5904b
$ pipenv install git+https://github.com/lewiswolf/kac_drumset.git
Installing git+https://github.com/lewiswolf/kac_drumset.git...
Resolving git+https://github.com/lewiswolf/kac_drumset.git...
[    ] Installing...INFO:pipenv.patched.pip._internal.vcs.git:Cloning https://gi
thub.com/lewiswolf/kac_drumset.git to c:\users\matte\appdata\local\temp\tmp0f0bf
d69

b.com/lewiswolf/kac_drumset.git 'C:\Users\matte\AppData\Local\Temp\tmp0f0bfd69'
[=   ] Installing None...INFO:pip.subprocessor:Cloning into 'C:\Users\matte\AppD
ata\Local\Temp\tmp0f0bfd69'...
[ ===] Installing None...INFO:pipenv.patched.pip._internal.vcs.git:Resolved http
s://github.com/lewiswolf/kac_drumset.git to commit 3901b199b6ad4850e76a2b56e5879
b6b2fc3763d
INFO:pip.subprocessor:Running command git submodule update --init --recursive -q
Added kac-drumset to Pipfile's [packages] ...
Installation Succeeded
Pipfile.lock not found, creating...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
Success!
[ ===] Locking...Warning: INFO:pip.subprocessor:Running command git clone --filter=blob:none --quiet https://github.com/lewiswolf/kac_drumset.git 'C:\Users\matte\AppData\Local\Temp\pip-temp-j3f5x_7d\kac-drumset
_a23ae221584a497c9687ca68c8d8332a'
INFO:pip.subprocessor:Running command git submodule update --init --recursive -q
INFO:pip.subprocessor:Running command git clone --filter=blob:none https://github.com/lewiswolf/kac_drumset.git 'C:\Users\matte\AppData\Local\Temp\tmp_5kj_lff'
INFO:pip.subprocessor:Cloning into 'C:\Users\matte\AppData\Local\Temp\tmp_5kj_lff'...
INFO:pip.subprocessor:Running command git submodule update --init --recursive -q
Locking [dev-packages] dependencies...
Updated Pipfile.lock (5ce00b53821591c1706c3ad525749926bf599bb112f6819d8f61568624ef9dd4)!
Installing dependencies from Pipfile.lock (ef9dd4)...
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

matteius avatar Sep 09 '23 20:09 matteius

On 2023.9.8, running the same command you posted, I get

 Locking Failed!
⠧ Locking...False
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 675, in <module>
    main()
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 661, in main
    _main(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 645, in _main
    resolve_packages(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 612, in resolve_packages
    results, resolver = resolve(
                        ^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 592, in resolve
    return resolve_deps(
           ^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 897, in resolve_deps
    results, hashes, internal_resolver = actually_resolve_deps(
                                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 670, in actually_resolve_deps
    resolver.resolve()
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 445, in resolve
    results = resolver.resolve(constraints, check_supported_wheels=False)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve
    result = self._result = resolver.resolve(
                            ^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 427, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 239, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 229, in _get_updated_criteria
    for requirement in self._p.get_dependencies(candidate=candidate):
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/provider.py", line 244, in get_dependencies
    return [r for r in candidate.iter_dependencies(with_requires) if r is not None]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/provider.py", line 244, in <listcomp>
    return [r for r in candidate.iter_dependencies(with_requires) if r is not None]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 244, in iter_dependencies
    yield self._factory.make_requirement_from_spec(str(r), self._ireq)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/factory.py", line 514, in make_requirement_from_spec
    return self._make_requirement_from_install_req(ireq, requested_extras)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/factory.py", line 453, in _make_requirement_from_install_req
    cand = self._make_candidate_from_link(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
                                       ^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 297, in __init__
    super().__init__(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 157, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 226, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 308, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/operations/prepare.py", line 538, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/operations/prepare.py", line 609, in _prepare_linked_requirement
    local_file = unpack_url(
                 ^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/operations/prepare.py", line 166, in unpack_url
    file = get_http_url(
           ^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/operations/prepare.py", line 107, in get_http_url
    from_path, content_type = download(link, temp_dir.path)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/network/download.py", line 134, in __call__
    resp = _http_get_download(self._session, link)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/network/download.py", line 117, in _http_get_download
    resp = session.get(target_url, headers=HEADERS, stream=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_internal/network/session.py", line 519, in request
    return super().request(method, url, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/requests/sessions.py", line 697, in send
    adapter = self.get_adapter(url=request.url)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/requests/sessions.py", line 794, in get_adapter
    raise InvalidSchema(f"No connection adapters were found for {url!r}")
pipenv.patched.pip._vendor.requests.exceptions.InvalidSchema: No connection adapters were found for 'git+git+https://github.com/lewiswolf/kac_drumset.git'

Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/bin/pipenv", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/cli/options.py", line 58, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/cli/command.py", line 209, in install
    do_install(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 297, in do_install
    raise e
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 281, in do_install
    do_init(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 648, in do_init
    do_lock(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/lock.py", line 65, in do_lock
    venv_resolve_deps(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 838, in venv_resolve_deps
    c = resolve(cmd, st, project=project)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 707, in resolve
    raise RuntimeError("Failed to lock Pipfile.lock!")
RuntimeError: Failed to lock Pipfile.lock!

and with @master I get:

✘ Locking Failed!
⠏ Locking...False
CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:Ignored the following versions that require a different python version: 1.21.2 Requires-Python >=3.7,<3.11; 1.21.3 Requires-Python >=3.7,<3.11; 1.21.4 Requires-Python >=3.7,<3.11; 1.21.5 Requires-Python >=3.7,<3.11; 1.21.6 Requires-Python >=3.7,<3.11
CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:Could not find a version that satisfies the requirement kac-drumsetre (from kac-prediction) (from versions: none)
[ResolutionFailure]:   File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 645, in _main
[ResolutionFailure]:       resolve_packages(
[ResolutionFailure]:   File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 612, in resolve_packages
[ResolutionFailure]:       results, resolver = resolve(
[ResolutionFailure]:       ^^^^^^^^
[ResolutionFailure]:   File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 592, in resolve
[ResolutionFailure]:       return resolve_deps(
[ResolutionFailure]:       ^^^^^^^^^^^^^
[ResolutionFailure]:   File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 897, in resolve_deps
[ResolutionFailure]:       results, hashes, internal_resolver = actually_resolve_deps(
[ResolutionFailure]:       ^^^^^^^^^^^^^^^^^^^^^^
[ResolutionFailure]:   File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 670, in actually_resolve_deps
[ResolutionFailure]:       resolver.resolve()
[ResolutionFailure]:   File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 447, in resolve
[ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv run pip install <requirement_name> to bypass this mechanism, then run $ pipenv graph to inspect the versions actually installed in the virtualenv.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: No matching distribution found for kac-drumsetre

Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/bin/pipenv", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/cli/options.py", line 58, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/cli/command.py", line 209, in install
    do_install(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 297, in do_install
    raise e
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 281, in do_install
    do_init(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 648, in do_init
    do_lock(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/routines/lock.py", line 65, in do_lock
    venv_resolve_deps(
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 838, in venv_resolve_deps
    c = resolve(cmd, st, project=project)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.9.8/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 707, in resolve
    raise RuntimeError("Failed to lock Pipfile.lock!")
RuntimeError: Failed to lock Pipfile.lock!

lewiswolf avatar Sep 09 '23 20:09 lewiswolf

pipenv install package_name @ -e ./kymatio also did not work for me... these 'complex' setup.py files were all working fine for me on the July version of pipenv, plus many of them have github actions set to test that their installation via pip works fine.

lewiswolf avatar Sep 09 '23 20:09 lewiswolf

Thanks for looking into this though!

lewiswolf avatar Sep 09 '23 20:09 lewiswolf

pipenv install package_name @ -e ./kymatio also did not work for me.

Ah you're right, the name @ format isn't supported for file installs. I was able to reproduce that issue and I have a draft PR out that resolved it for me. However I cannot reproduce the git vcs issues you are reporting -- I would suggest trying to fully uninstall pipenv until its not showing on the path and try installing it again just in case the pipenv in site packages is different from the version displayed in the Cellar path -- just noting I am seeing a double git+git+ in one of the outputs you posted 🤔

matteius avatar Sep 10 '23 01:09 matteius

I also noticed the double git+ thing in the Pipfile. When the installation works, it works fine with that in the Pipfile, and you can delete it afterwards. But yeah something is going on with the parsing.

Have you tried your tests on macOS? I ran brew remove --force $(brew list --formula) and then brew bundle install --file ... and I am still getting the same issue.

lewiswolf avatar Sep 10 '23 13:09 lewiswolf

I don't recommend installing pipenv via brew -- I run the latest version on mac OS for work, but I install it using pip.

matteius avatar Sep 11 '23 16:09 matteius

Any update to these issues? install pipenv from pip changed nothing regarding these issue by the way 😔

lewiswolf avatar Oct 03 '23 12:10 lewiswolf

I haven't been able to reproduce the double git+ thing so no updates at this time.

matteius avatar Oct 03 '23 13:10 matteius

@lewiswolf Just cut release 2023.10.3 which has all the changes from main -- I am not convinced that it will solve your issue, but worth having a check. If its still an issue, we will need to do some more debugging.

matteius avatar Oct 03 '23 13:10 matteius

You're right this is a very weird issue... I've noticed that none of my macos github workflows are reporting the same issue either. Perhaps its something to do with my environment variables? The only thing in my bash setup that is different from vanilla macos is that I'm running the latest version of llvm and clang, but pipenv doesn't depend on these?

lewiswolf avatar Oct 04 '23 00:10 lewiswolf

Okay so I ran some tests this morning, and essentially the issue is the resolution of the git path when running something along the lines of: pipenv install "git+https://github.com/lewiswolf/kac_prediction.git"

This adds kac-prediction = {git = "git+https://github.com/lewiswolf/kac_prediction.git"} to the Pipfile. If you enter the entry manually, as kac-prediction = {git = "https://github.com/lewiswolf/kac_prediction.git"}, it all works fine now.

I tested this on the most recent version of pipenv, running macos 14, and with and without the default LLVM/clang. Same result in all cases.

lewiswolf avatar Oct 04 '23 11:10 lewiswolf

pipenv install package_name @ -e ./kymatio also did not work for me... these 'complex' setup.py files were all working fine for me on the July version of pipenv, plus many of them have github actions set to test that their installation via pip works fine.

I can confirm also that running pipenv install -e ./kymatio works as expected

lewiswolf avatar Oct 04 '23 12:10 lewiswolf