Skip to content

Wheels with tags in manylinux_x_y format cannot be resolved #199

Open

Description

@chbaeumer

Hi,

I’m encountering an issue where the python-inspector tool does not resolve the wheel for a packages correctly if the wheel tag is in the format manylinux_x_y

Environment

Python Inspector Version: 0.12.0
Python Version: 3.11
Operating System: Linux, Ubuntu 22.04

Steps to Reproduce

Create a requirement.txt file with following content:

solace-pubsubplus==1.9.0 ; python_version >= "3.11" and python_version < "4.0"

Run the Python Inspector tool:

python-inspector -p 3.11 -o linux --json inspector_output.json --requirement requirement.txt

Observe the output.

Expected Behavior

The dependency can be resolved.

Actual Behavior

The tool throws an exception:

resolvelib.resolvers.exceptions.ResolutionImpossible: [RequirementInformation(requirement=<Requirement('solace-pubsubplus==1.9.0; python_version >= "3.11" and python_version < "4.0"')>, parent=None)]

Additional Information

Many thanks

Christoph

This issue arose while using ORT, which depends on python-inspector. It seems like the problem originates from python-inspector itself when analyzing requirements.txt.

Spec

https://github.com/pypa/manylinux

Activity

  1. chbaeumer commented on Jan 30, 2025

    @chbaeumer
    Author

    Strangely following commands seems to work.

    Succeeds even when I use a python 3.11 interpreter:
    python-inspector -p 3.10 -o linux --json inspector_output.json --requirement requirement.txt

    Succeeds, too. The optional parameter forces a different approach.
    python-inspector -p 3.11 -o linux --json inspector_output.json --requirement requirement.txt --use-pypi-json-api

    Here I don't like the hint from the command line parameter:

    Use PyPI JSON API to fetch dependency data. Faster but not always correct.

    Thank you

    Christoph

  2. pombredanne commented on Apr 7, 2025

    @pombredanne
    Member
  3. scheer-semvox commented on Jun 24, 2025

    @scheer-semvox

    I do have the same issue when using ort analyse on my poetry-project:

    java.io.IOException: Running 'python-inspector --python-version 311 --operating-system linux --json-pdt /tmp/ort-PythonInspector13710381662136651418/python-inspector6283273422756952523.json --analyze-setup-py-insecurely --requirement /tmp/ort-Poetry12499612839497264533/requirements.txt14705584514466321039.tmp --verbose' in '/tmp/ort-Poetry12499612839497264533' failed with exit code 1:
    Traceback (most recent call last):
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/resolvelib/resolvers/resolution.py", line 388, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/resolvelib/resolvers/resolution.py", line 142, in _add_to_criteria
    raise RequirementsConflicted(criterion)
    resolvelib.resolvers.exceptions.RequirementsConflicted: Requirements conflict: <Requirement('onnxruntime==1.21.1; python_version >= "3.10" and python_version < "3.13"')>

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/python_inspector/resolve_cli.py", line 253, in resolve_dependencies
    resolution_result: Dict = resolver_api(
    ^^^^^^^^^^^^^
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/python_inspector/api.py", line 279, in resolve_dependencies
    resolution, purls = resolve(
    ^^^^^^^^
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/python_inspector/api.py", line 341, in resolve
    resolved_dependencies, packages = get_resolved_dependencies(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/python_inspector/api.py", line 379, in get_resolved_dependencies
    resolver_results = resolver.resolve(requirements=requirements, max_rounds=max_rounds)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/resolvelib/resolvers/resolution.py", line 515, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/python/versions/3.11.10/lib/python3.11/site-packages/resolvelib/resolvers/resolution.py", line 390, in resolve
    raise ResolutionImpossible(e.criterion.information) from e
    resolvelib.resolvers.exceptions.ResolutionImpossible: [RequirementInformation(requirement=<Requirement('onnxruntime==1.21.1; python_version >= "3.10" and python_version < "3.13"')>, parent=None)]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions