Skip to content

Wrong version pinning of pypdfium2, at least in Termux #237

@Manamama

Description

@Manamama

See: pypdfium2-team/pypdfium2#332 (comment) and thereabove for the details.

If pinned: Collecting pypdfium2!=4.30.1,<5.0.0,>=4.30.0 (from docling) then errors:

Collecting docling
  Obtaining dependency information for docling from https://files.pythonhosted.org/packages/a6/b2/54ed8c9ebc2571d5058c6ec435f1819eb58bfcab8ef95a99fa263b4fbc60/docling-2.69.1-py3-none-any.whl.metadata
  Using cached docling-2.69.1-py3-none-any.whl.metadata (11 kB)
  Obtaining dependency information for docling from https://files.pythonhosted.org/packages/73/99/bf8fe24158dccb0c5f54f8f3596563be965ef29872719108956047d4adf5/docling-2.69.0-py3-none-any.whl.metadata
  Using cached docling-2.69.0-py3-none-any.whl.metadata (11 kB)
  Obtaining dependency information for docling from https://files.pythonhosted.org/packages/d5/a5/08716dcbf93e350f0595b58ece138b3b78606ef2f6a5a5058b1642cfe142/docling-2.68.0-py3-none-any.whl.metadata
  Using cached docling-2.68.0-py3-none-any.whl.metadata (11 kB)
Collecting pypdfium2!=4.30.1,<5.0.0,>=4.30.0 (from docling)
  Using cached pypdfium2-4.30.0.tar.gz (140 kB)
  Running command Preparing metadata (pyproject.toml)
  /data/data/com.termux/files/usr/lib/python3.13/site-packages/wheel/bdist_wheel.py:4: FutureWarning: The 'wheel' package is no longer the canonical location of the 'bdist_wheel' command, and will be removed in a future release. Please update to setuptools v70.1 or later which contains an integrated version of this command.
    warn(
  Traceback (most recent call last):
    File "/data/data/com.termux/files/usr/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
      main()
      ~~~~^^
    File "/data/data/com.termux/files/usr/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
      json_out["return_val"] = hook(**hook_input["kwargs"])
                               ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
    File "/data/data/com.termux/files/usr/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 175, in prepare_metadata_for_build_wheel
      return hook(metadata_directory, config_settings)
    File "/data/data/com.termux/files/usr/lib/python3.13/site-packages/setuptools/build_meta.py", line 380, in prepare_metadata_for_build_wheel
      self.run_setup()
      ~~~~~~~~~~~~~~^^
    File "/data/data/com.termux/files/usr/lib/python3.13/site-packages/setuptools/build_meta.py", line 317, in run_setup
      exec(code, locals())
      ~~~~^^^^^^^^^^^^^^^^
    File "<string>", line 161, in <module>
    File "<string>", line 152, in main
    File "/data/data/com.termux/files/usr/tmp/pip-install-040787r0/pypdfium2_cc6a382e2d014b7aab4facd8027b76c2/setupsrc/pypdfium2_setup/packaging_base.py", line 610, in parse_pl_spec
      raise RuntimeError(f"No pre-built binaries available for {Host}. You may place custom binaries & bindings in data/sourcebuild and install with `{PlatSpec_EnvVar}=sourcebuild`.")
  RuntimeError: No pre-built binaries available for <Host: android aarch64>. You may place custom binaries & bindings in data/sourcebuild and install with `PDFIUM_PLATFORM=sourcebuild`.
  error: subprocess-exited-with-error

If not pinned:

Special pip install, verbose, upgrade-strategy=only-if-needed etc: 
Using pip 26.0.1 from /data/data/com.termux/files/usr/lib/python3.13/site-packages/pip (python 3.13)
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cpu, https://termux-user-repository.github.io/pypi/
Requirement already satisfied: pypdfium2 in /data/data/com.termux/files/usr/lib/python3.13/site-packages (5.5.0)
	Command being timed: "pip install -U --no-build-isolation --upgrade-strategy=only-if-needed -v --retries 10 --resume-retries 10 --timeout 60 --no-binary :all --extra-index-url https://termux-user-repository.github.io/pypi/ pypdfium2"
  • installs fine.

So the Droid users must yet again pip install yours in stages, starting from https://github.com/pypdfium2-team/pypdfium2 and then 'pandasor (yet again) togit clone` yours and unpin most dependencies by hand, to make it work:

pip install -U accelerate beautifulsoup4 certifi defusedxml docling-core docling-ibm-models filetype huggingface_hub lxml marko openpyxl pandas pillow pluggy polyfactory pydantic pydantic-settings pylatexenc pypdfium2 python-docx python-pptx rapidocr requests rtree scipy tqdm typer docling-parse

and only then:
pip install -U pandas
pip install -U docling --no-deps
or a version thereof.

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