pypa / pip

The Python package installer
https://pip.pypa.io/
MIT License
9.48k stars 3.01k forks source link

Unable to install libxml2-python3 #12027

Closed MarkR42 closed 1 year ago

MarkR42 commented 1 year ago

Description

Latest version of pip fails to install libxml2-python3

Python 3.8 Linux 64-bit.

An older version of pip, 23.0.1, can successfully install this package.

I am using a virtualenv.

Expected behavior

Successfully installed libxml2-python

pip version

23.1.2

Python version

3.8.13

OS

Oracle Linux 8.5 64-bit

How to Reproduce

  1. Create virtualenv
  2. Activate virtualenv
  3. pip install --verbose libxml2-python3

Output

ERROR: Could not install packages due to an OSError.
Traceback (most recent call last):                                                                                                                                                 
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/commands/install.py", line 380, in run                                                       
    requirement_set = resolver.resolve(                                                                                                                                            
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve                                      
    result = self._result = resolver.resolve(                                                                                                                                      
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve                                                 
    state = resolution.resolve(requirements, max_rounds=max_rounds)                                                                                                                
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 397, in resolve                                                 
    self._add_to_criteria(self.state.criteria, r, parent=None)                                                                                                                     
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria                                        
    if not criterion.candidates:                                                                                                                                                   
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_vendor/resolvelib/structs.py", line 156, in __bool__                                                  
    return bool(self._sequence)                                                                                                                                                    
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__                            
    return any(self)                                                                                                                                                               
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>                           
    return (c for c in iterator if id(c) not in self._incompatible_ids)                                                                                                            
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built                          
    candidate = func()                                                                                                                                                             
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link                    
    self._link_candidate_cache[link] = LinkCandidate(                                                                                                                              
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 297, in __init__                                  
    super().__init__(                                                                                                                                                              
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 157, in __init__                                  
    self.dist = self._prepare()                                                                                                                                                    
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py", line 226, in _prepare                                  
    dist = self._prepare_distribution()                                                                                                                                            
  File "/opt/wdpa-virtualenv/lib/python3.8/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 "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/operations/prepare.py", line 516, in prepare_linked_requirement                              
    return self._prepare_linked_requirement(req, parallel_builds)                                                                                                                  
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/operations/prepare.py", line 631, in _prepare_linked_requirement                             
    dist = _get_prepared_distribution(                                                                                                                                             
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/operations/prepare.py", line 69, in _get_prepared_distribution                               
    abstract_dist.prepare_distribution_metadata(                                                                                                                                   
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/distributions/sdist.py", line 48, in prepare_distribution_metadata                           
    self._install_build_reqs(finder)                                                                                                                                               
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/distributions/sdist.py", line 118, in _install_build_reqs                                    
    build_reqs = self._get_build_requires_wheel()                                                                                                                                  
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/distributions/sdist.py", line 95, in _get_build_requires_wheel                               
    return backend.get_requires_for_build_wheel()                                                                                                                                  
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_internal/utils/misc.py", line 692, in get_requires_for_build_wheel                                    
    return super().get_requires_for_build_wheel(config_settings=cs)                                                                                                                
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_vendor/pyproject_hooks/_impl.py", line 166, in get_requires_for_build_wheel                           
    return self._call_hook('get_requires_for_build_wheel', {                                                                                                                       
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_vendor/pyproject_hooks/_impl.py", line 317, in _call_hook                                             
    data = read_json(pjoin(td, 'output.json'))                                                                                                                                     
  File "/opt/wdpa-virtualenv/lib/python3.8/site-packages/pipenv/patched/pip/_vendor/pyproject_hooks/_impl.py", line 19, in read_json                                               
    with open(path, encoding='utf-8') as f:                                                                                                                                        
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpotyixm44/output.json'

Code of Conduct

uranusjr commented 1 year ago

This seems to be an issue with the libxml2-python3 package and should be reported to the project maintainers instead.

pip has recently transitioned from using PEP 517 to build packages when setuptools and wheel are not present for legacy setups, which is why you see the behaviour change.

To work around the issue: pip install setuptools wheel