Pipenv build dependencies error when installing `pandas`
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/python33.12.7:/bin/python33.10.14:/usr/bin/pypy33.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:
COLORTERMDEBUGINFOD_URLSDISPLAYEDITORHISTCONTROLHISTSIZEHOMEHOSTNAMEHOSTTYPELANGLESSLESSOPENLOGNAMELSCOLORSLS_COLORSMAILMOZ_GMP_PATHNAMEOLDPWDPAGERPATHPULSE_SERVERPWDSHELLSHLVLSSH_AUTH_SOCKTERMTERMINATOR_UUIDTERM_PROGRAMTERM_PROGRAM_VERSIONTMUXTMUX_PANEUSERVTE_VERSIONWAYLAND_DISPLAYWSL2_GUI_APPS_ENABLEDWSLENVWSL_DISTRO_NAMEWSL_INTEROPXDG_DATA_DIRSXDG_RUNTIME_DIRZSH_PIP_DISABLE_PIP_VERSION_CHECKPYTHONDONTWRITEBYTECODE
Pipenv–specific environment variables:
Debug–specific environment variables:
SHELL:/usr/bin/zshEDITOR:/usr/bin/nanoLANG:en_US.UTF-8PWD:/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"