pipenv icon indicating copy to clipboard operation
pipenv copied to clipboard

Pipenv build dependencies error when installing `pandas`

Open qmadev opened this issue 7 months ago • 0 comments

Issue description

Pipenv failes to install pandas in one of my project. The error seems to occur when installing build dependencies. I'm using pipenv version 2025.0.2. I checked version 2024.4.1 which did not fail on the exact same project.

Expected result

I expected pipenv to create a venv and install all dependencies, like it does in version 2024.4.1.

Actual result

I used the command pipenv install --python 3.10 -vvvvvvvvvvvvvv -d

Output:

INFO:pipenv.patched.pip._internal.operations.prepare:Collecting numpy==1.23.4 (from -r                                       /tmp/pipenv-slypeqmi-requirements/pipenv-vq8psbto-constraints.txt (line 20))                                                 INFO:pipenv.patched.pip._internal.network.download:Using cached numpy-1.23.4.tar.gz (10.7 MB)                                INFO:pipenv.patched.pip._internal.cli.spinners:Installing build dependencies: started                                        INFO:pipenv.patched.pip._internal.cli.spinners:Installing build dependencies: finished with status 'done'                    INFO:pipenv.patched.pip._internal.cli.spinners:Getting requirements to build wheel: started                                  INFO:pipenv.patched.pip._internal.cli.spinners:Getting requirements to build wheel: finished with status 'done'              INFO:pipenv.patched.pip._internal.cli.spinners:Preparing metadata (pyproject.toml): started                                  INFO:pipenv.patched.pip._internal.cli.spinners:Preparing metadata (pyproject.toml): finished with status 'done'              INFO:pipenv.patched.pip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('oauthlib==3.1.0'),                                                                                                                     None)                                                                                                                        INFO:pipenv.patched.pip._internal.operations.prepare:Collecting oauthlib==3.1.0 (from -r                                     /tmp/pipenv-slypeqmi-requirements/pipenv-vq8psbto-constraints.txt (line 21))                                                 INFO:pipenv.patched.pip._internal.network.download:Using cached oauthlib-3.1.0-py2.py3-none-any.whl.metadata (7.1 kB)        INFO:pipenv.patched.pip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('packaging==24.2'),                                                                                                                     None)
INFO:pipenv.patched.pip._internal.operations.prepare:Collecting packaging==24.2 (from -r                                     /tmp/pipenv-slypeqmi-requirements/pipenv-vq8psbto-constraints.txt (line 22))                                                 INFO:pipenv.patched.pip._internal.network.download:Using cached packaging-24.2-py3-none-any.whl.metadata (3.2 kB)            INFO:pipenv.patched.pip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('pandas==1.5.0'),                                                                                                                       None)                                                                                                                        INFO:pipenv.patched.pip._internal.operations.prepare:Collecting pandas==1.5.0 (from -r                                       /tmp/pipenv-slypeqmi-requirements/pipenv-vq8psbto-constraints.txt (line 23)) 
INFO:pipenv.patched.pip._internal.operations.prepare:Collecting packaging==24.2 (from -r
/tmp/pipenv-slypeqmi-requirements/pipenv-vq8psbto-constraints.txt (line 22))
INFO:pipenv.patched.pip._internal.network.download:Using cached packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
INFO:pipenv.patched.pip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('pandas==1.5.0'),
None)
INFO:pipenv.patched.pip._internal.operations.prepare:Collecting pandas==1.5.0 (from -r
/tmp/pipenv-slypeqmi-requirements/pipenv-vq8psbto-constraints.txt (line 23))
INFO:pipenv.patched.pip._internal.network.download:Using cached pandas-1.5.0.tar.gz (5.2 MB)
INFO:pipenv.patched.pip._internal.cli.spinners:Installing build dependencies: started
INFO:pipenv.patched.pip._internal.cli.spinners:Installing build dependencies: finished with status 'error'
ERROR:pip.subprocessor:pip subprocess to install build dependencies exited with 1
Traceback (most recent call last):
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/utils/resolver.py", line 472, in resolve
    results = resolver.resolve(self.constraints, check_supported_wheels=False)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/resolver.
py", line 95, in resolve
    result = self._result = resolver.resolve(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py",
line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py",
line 397, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py",
line 173, in _add_to_criteria
    if not criterion.candidates:
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_vendor/resolvelib/structs.py",
line 156, in __bool__
    return bool(self._sequence)
           ^^^^^^^^^^^^^^^^^^^^
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/found_can
didates.py", line 174, in __bool__
    return any(self)
           ^^^^^^^^^
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/found_can
didates.py", line 162, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/found_can
didates.py", line 53, in _iter_built
    candidate = func()
                ^^^^^^
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/factory.p
y", line 187, in _make_candidate_from_link
    base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/factory.p
y", line 233, in _make_base_candidate_from_link
    self._link_candidate_cache = LinkCandidate(
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidate
s.py", line 308, in __init__
    super().__init__(
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidate
s.py", line 160, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidate
s.py", line 237, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File
"/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidate
s.py", line 319, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/operations/prepare.py",
line 527, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/operations/prepare.py",
line 642, in _prepare_linked_requirement
    dist = _get_prepared_distribution(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/operations/prepare.py",
line 72, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/distributions/sdist.py",
line 46, in prepare_distribution_metadata
    self._prepare_build_backend(finder)
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/distributions/sdist.py",
line 78, in _prepare_build_backend
    self.req.build_env.install_requirements(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/build_env.py", line 217,
in install_requirements
    self._install_requirements(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/build_env.py", line 287,
in _install_requirements
    call_subprocess(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/patched/pip/_internal/utils/subprocess.py",
line 209, in call_subprocess
    raise error
pipenv.patched.pip._internal.exceptions.InstallationSubprocessError: pip subprocess to install build dependencies exited with 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/resolver.py", line 465, in <module>
    main()
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/resolver.py", line 451, in main
    _main(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/resolver.py", line 436, in _main
    resolve_packages(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/resolver.py", line 400, in resolve_packages
    results, resolver = resolve_deps(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/utils/resolver.py", line 979, in resolve_deps
    results, hashes, internal_resolver = actually_resolve_deps(
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/utils/resolver.py", line 747, in
actually_resolve_deps
    resolver.resolve()
  File "/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv/utils/resolver.py", line 474, in resolve
    raise ResolutionFailure(message=e)
pipenv.exceptions.ResolutionFailure: ERROR: pip subprocess to install build dependencies exited with 1
✘ Locking Failed!
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: Failed to lock Pipfile.lock!

Steps to replicate

# Install pipenv
pip install pipenv
# Clone git repo
git clone https://github.com/hnhdev/timesketch
cd timesketch
# Run pipenv
pipenv install -d

$ pipenv --support

Pipenv version: '2025.0.2'

Pipenv location: '/home/user/.local/share/pipx/venvs/pipenv/lib64/python3.12/site-packages/pipenv'

Python location: '/home/user/.local/share/pipx/venvs/pipenv/bin/python'

OS Name: 'posix'

User pip version: '25.0.1'

user Python installations found:

  • 3.12.7: /usr/bin/python3
  • 3.12.7: /bin/python3
  • 3.10.14: /usr/bin/pypy3
  • 3.10.14: /bin/pypy3

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.12.7',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '5.15.167.4-microsoft-standard-WSL2',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Tue Nov 5 00:21:55 UTC 2024',
 'python_full_version': '3.12.7',
 'python_version': '3.12',
 'sys_platform': 'linux'}

System environment variables:

  • COLORTERM
  • DEBUGINFOD_URLS
  • DISPLAY
  • EDITOR
  • HISTCONTROL
  • HISTSIZE
  • HOME
  • HOSTNAME
  • HOSTTYPE
  • LANG
  • LESS
  • LESSOPEN
  • LOGNAME
  • LSCOLORS
  • LS_COLORS
  • MAIL
  • MOZ_GMP_PATH
  • NAME
  • OLDPWD
  • PAGER
  • PATH
  • PULSE_SERVER
  • PWD
  • SHELL
  • SHLVL
  • SSH_AUTH_SOCK
  • TERM
  • TERMINATOR_UUID
  • TERM_PROGRAM
  • TERM_PROGRAM_VERSION
  • TMUX
  • TMUX_PANE
  • USER
  • VTE_VERSION
  • WAYLAND_DISPLAY
  • WSL2_GUI_APPS_ENABLED
  • WSLENV
  • WSL_DISTRO_NAME
  • WSL_INTEROP
  • XDG_DATA_DIRS
  • XDG_RUNTIME_DIR
  • ZSH
  • _
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PYTHONDONTWRITEBYTECODE

Pipenv–specific environment variables:

Debug–specific environment variables:

  • SHELL: /usr/bin/zsh
  • EDITOR: /usr/bin/nano
  • LANG: en_US.UTF-8
  • PWD: /home/user/projects/ir/timesketch

Contents of Pipfile ('/home/user/projects/ir/timesketch/Pipfile'):

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]
alembic = "==1.11.1"
altair = "==4.1.0"
celery = "==5.2.7"
cryptography = "==43.0.1"
datasketch = "==1.5.0"
dfir-unfurl = "==20240627"
opensearch-py = "==2.6.0"
flask = "==3.0.3"
flask-bcrypt = "==1.0.1"
flask-login = "==0.6.3"
flask-migrate = "==4.0.4"
flask-restful = "==0.3.10"
flask-sqlalchemy = "==3.0.3"
flask-wtf = "==1.2.1"
google-auth = "==2.32.0"
google-auth-oauthlib = "==0.4.1"
google-cloud-aiplatform = "==1.70.0"
gunicorn = "==22.0.0"
numpy = "==1.23.4"
oauthlib = "==3.1.0"
packaging = "==24.2"
pandas = "==1.5.0"
pyjwt = "==2.4.0"
python-dateutil = "==2.8.1"
pyyaml = "==6.0.1"
redis = "==4.4.4"
requests = "==2.32.3"
sigmatools = "==0.19.1"
six = "==1.12.0"
sqlalchemy = "==1.4.48"
werkzeug = "==3.0.3"
wtforms = "==3.0.1"
xlrd = "==1.2.0"
tabulate = "==0.9.0"
markdown = "==3.2.2"
networkx = "==2.5"
prometheus-client = "==0.16.0"
prometheus-flask-exporter = "==0.22.4"
decorator = "==5.0.5"
geoip2 = "==4.8.0"
jsonschema = "==4.17.3"

[requires]
python_version = "3.10"

qmadev avatar May 15 '25 16:05 qmadev