termux / termux-app

Termux - a terminal emulator application for Android OS extendible by variety of packages.
https://f-droid.org/en/packages/com.termux
Other
35.64k stars 3.74k forks source link

[Bug]: Build error with pip install mat2 and spotdl #3707

Closed ticklemyIP closed 3 months ago

ticklemyIP commented 11 months ago

Problem description

I have been trying to installing the software mat2 and spotdl via pip on Android 13, OneUI 5.1. However I have been having issues both on the latest release and the latest Android 7 Universal build (https://github.com/termux/termux-app/actions/runs/6728253937). These packages have not been installing for a while now, at least 6 months.

Steps to reproduce the behavior.

  1. Setup basic environment by fresh installing and applying updates
  2. Install pip
  3. Try installing mat2, error
  4. Install pycairo via pkg
  5. Try installing mat2 again, error
  6. Try installing spotdl, error

Terminal summaries below:

pip install mat2 ``` ~ $ pip install mat2 Collecting mat2 Downloading mat2-0.13.4-py3-none-any.whl.metad ata (7.8 kB) Collecting mutagen (from mat2) Downloading mutagen-1.47.0-py3-none-any.whl.me tadata (1.7 kB) Collecting PyGObject (from mat2) Downloading PyGObject-3.46.0.tar.gz (723 kB) ━━━━━━━━━━ 723.4/723.4 1.1 MB/s eta 0:00:00 kB Installing build dependencies ... error error: subprocess-exited-with-error × pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> [46 lines of output] Collecting setuptools Downloading setuptools-68.2.2-py3-none-a ny.whl.metadata (6.3 kB) Collecting wheel Downloading wheel-0.41.3-py3-none-any.wh l.metadata (2.2 kB) Collecting pycairo Downloading pycairo-1.25.1.tar.gz (347 k B) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 347.1/347.1 kB 533.3 kB/s eta 0:00:00 Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: sta rted Getting requirements to build wheel: fin ished with status 'done' Installing backend dependencies: started Installing backend dependencies: finishe d with status 'done' Preparing metadata (pyproject.toml): sta rted Preparing metadata (pyproject.toml): fin ished with status 'done' Using cached setuptools-68.2.2-py3-none-an y.whl (807 kB) Using cached wheel-0.41.3-py3-none-any.whl (65 kB) Building wheels for collected packages: py cairo Building wheel for pycairo (pyproject.to ml): started Building wheel for pycairo (pyproject.to ml): finished with status 'error' error: subprocess-exited-with-error × Building wheel for pycairo (pyproject. toml) did not run successfully. │ exit code: 1 ╰─> [15 lines of output] running bdist_wheel running build running build_py creating build creating build/lib.linux-aarch64-cpy thon-311 creating build/lib.linux-aarch64-cpy thon-311/cairo copying cairo/__init__.py -> build/l ib.linux-aarch64-cpython-311/cairo copying cairo/__init__.pyi -> build/ lib.linux-aarch64-cpython-311/cairo copying cairo/py.typed -> build/lib. linux-aarch64-cpython-311/cairo running build_ext Package cairo was not found in the p kg-config search path. Perhaps you should add the directory containing `cairo.pc' to the PKG_CONFIG_PATH environment v ariable No package 'cairo' found Command '['pkg-config', '--print-err ors', '--exists', 'cairo >= 1.15.10']' returned non-zero exit status 1. [end of output] note: This error originates from a subpr ocess, and is likely not a problem with pip. ERROR: Failed building wheel for pycairo Failed to build pycairo ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-bas ed projects [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × pip subprocess to install build dependencies d id not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, a nd is likely not a problem with pip. ~ $ ```
pkg install pycario; pip install mat2 ``` ~ $ pkg install pycairo No mirror or mirror group selected. You might want to select one by running 'termux-change-repo' Checking availability of current mirror: [*] https://termux.mentality.rip/termux-main/: ok Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: brotli fontconfig freetype libandroid-execinfo libandroid-shmem libcairo liblzo libpixman libpng libx11 libxau libxcb libxdmcp libxext libxrender ttf-dejavu Recommended packages: xorg-xauth The following NEW packages will be installed: brotli fontconfig freetype libandroid-execinfo libandroid-shmem libcairo liblzo libpixman libpng libx11 libxau libxcb libxdmcp libxext libxrender pycairo ttf-dejavu 0 upgraded, 17 newly installed, 0 to remove and 0 not upgraded. Need to get 7321 kB of archives. After this operation, 46.1 MB of additional disk space will be used. Do you want to continue? [Y/n] Get:1 https://termux.mentality.rip/termux-main stable/main aarch64 brotli aarch64 1.1.0 [331 kB] Get:2 https://termux.mentality.rip/termux-main stable/main aarch64 libpng aarch64 1.6.40 [195 kB] Get:3 https://termux.mentality.rip/termux-main stable/main aarch64 freetype aarch64 2.13.2 [408 kB] Get:4 https://termux.mentality.rip/termux-main stable/main aarch64 ttf-dejavu all 2.37-8 [2468 kB] Get:5 https://termux.mentality.rip/termux-main stable/main aarch64 fontconfig aarch64 2.14.2-2 [118 kB] Get:6 https://termux.mentality.rip/termux-main stable/main aarch64 libandroid-execinfo aarch64 0.1-1 [14.2 kB] Get:7 https://termux.mentality.rip/termux-main stable/main aarch64 libandroid-shmem aarch64 0.4 [6944 B] Get:8 https://termux.mentality.rip/termux-main stable/main aarch64 liblzo aarch64 2.10-3 [65.3 kB] Get:9 https://termux.mentality.rip/termux-main stable/main aarch64 libpixman aarch64 0.42.2 [147 kB] Get:10 https://termux.mentality.rip/termux-main stable/main aarch64 libxau aarch64 1.0.11 [8488 B] Get:11 https://termux.mentality.rip/termux-main stable/main aarch64 libxdmcp aarch64 1.1.4 [24.0 kB] Get:12 https://termux.mentality.rip/termux-main stable/main aarch64 libxcb aarch64 1.16 [926 kB] Get:13 https://termux.mentality.rip/termux-main stable/main aarch64 libx11 aarch64 1.8.7 [1912 kB] Get:14 https://termux.mentality.rip/termux-main stable/main aarch64 libxext aarch64 1.3.5 [97.1 kB] Get:15 https://termux.mentality.rip/termux-main stable/main aarch64 libxrender aarch64 0.9.11 [23.6 kB] Get:16 https://termux.mentality.rip/termux-main stable/main aarch64 libcairo aarch64 1.18.0 [490 kB] Get:17 https://termux.mentality.rip/termux-main stable/main aarch64 pycairo aarch64 1.25.1 [87.6 kB] Fetched 7321 kB in 2s (3401 kB/s) Selecting previously unselected package brotli. (Reading database ... 15753 files and directories currently installed.) Preparing to unpack .../00-brotli_1.1.0_aarch64.deb ... Unpacking brotli (1.1.0) ... Selecting previously unselected package libpng. Preparing to unpack .../01-libpng_1.6.40_aarch64.deb ... Unpacking libpng (1.6.40) ... Selecting previously unselected package freetype. Preparing to unpack .../02-freetype_2.13.2_aarch64.deb ... Unpacking freetype (2.13.2) ... Selecting previously unselected package ttf-dejavu. Preparing to unpack .../03-ttf-dejavu_2.37-8_all.deb ... Unpacking ttf-dejavu (2.37-8) ... Selecting previously unselected package fontconfig. Preparing to unpack .../04-fontconfig_2.14.2-2_aarch64.deb ... Unpacking fontconfig (2.14.2-2) ... Selecting previously unselected package libandroid-execinfo. Preparing to unpack .../05-libandroid-execinfo_0.1-1_aarch64.deb ... Unpacking libandroid-execinfo (0.1-1) ... Selecting previously unselected package libandroid-shmem. Preparing to unpack .../06-libandroid-shmem_0.4_aarch64.deb ... Unpacking libandroid-shmem (0.4) ... Selecting previously unselected package liblzo. Preparing to unpack .../07-liblzo_2.10-3_aarch64.deb ... Unpacking liblzo (2.10-3) ... Selecting previously unselected package libpixman. Preparing to unpack .../08-libpixman_0.42.2_aarch64.deb ... Unpacking libpixman (0.42.2) ... Selecting previously unselected package libxau. Preparing to unpack .../09-libxau_1.0.11_aarch64.deb ... Unpacking libxau (1.0.11) ... Selecting previously unselected package libxdmcp. Preparing to unpack .../10-libxdmcp_1.1.4_aarch64.deb ... Unpacking libxdmcp (1.1.4) ... Selecting previously unselected package libxcb. Preparing to unpack .../11-libxcb_1.16_aarch64.deb ... Unpacking libxcb (1.16) ... Selecting previously unselected package libx11. Preparing to unpack .../12-libx11_1.8.7_aarch64.deb ... Unpacking libx11 (1.8.7) ... Selecting previously unselected package libxext. Preparing to unpack .../13-libxext_1.3.5_aarch64.deb ... Unpacking libxext (1.3.5) ... Selecting previously unselected package libxrender. Preparing to unpack .../14-libxrender_0.9.11_aarch64.deb ... Unpacking libxrender (0.9.11) ... Selecting previously unselected package libcairo. Preparing to unpack .../15-libcairo_1.18.0_aarch64.deb ... Unpacking libcairo (1.18.0) ... Selecting previously unselected package pycairo. Preparing to unpack .../16-pycairo_1.25.1_aarch64.deb ... Unpacking pycairo (1.25.1) ... Setting up libpng (1.6.40) ... Setting up libpixman (0.42.2) ... Setting up libxdmcp (1.1.4) ... Setting up libandroid-shmem (0.4) ... Setting up ttf-dejavu (2.37-8) ... Setting up libandroid-execinfo (0.1-1) ... Setting up libxau (1.0.11) ... Setting up libxcb (1.16) ... Setting up liblzo (2.10-3) ... Setting up brotli (1.1.0) ... Setting up libx11 (1.8.7) ... Setting up freetype (2.13.2) ... Setting up libxext (1.3.5) ... Setting up fontconfig (2.14.2-2) ... Setting up libxrender (0.9.11) ... Setting up libcairo (1.18.0) ... Setting up pycairo (1.25.1) ... ~ $ pip install mat2 Collecting mat2 Using cached mat2-0.13.4-py3-none-any.whl.metadata (7.8 kB) Collecting mutagen (from mat2) Using cached mutagen-1.47.0-py3-none-any.whl.metadata (1.7 kB) Collecting PyGObject (from mat2) Using cached PyGObject-3.46.0.tar.gz (723 kB) Installing build dependencies ... error error: subprocess-exited-with-error × pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> [45 lines of output] Collecting setuptools Using cached setuptools-68.2.2-py3-none-any.whl.metadata (6.3 kB) Collecting wheel Using cached wheel-0.41.3-py3-none-any.whl.metadata (2.2 kB) Collecting pycairo Using cached pycairo-1.25.1.tar.gz (347 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Installing backend dependencies: started Installing backend dependencies: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Using cached setuptools-68.2.2-py3-none-any.whl (807 kB) Using cached wheel-0.41.3-py3-none-any.whl (65 kB) Building wheels for collected packages: pycairo Building wheel for pycairo (pyproject.toml): started Building wheel for pycairo (pyproject.toml): finished with status 'error' error: subprocess-exited-with-error × Building wheel for pycairo (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [15 lines of output] running bdist_wheel running build running build_py creating build creating build/lib.linux-aarch64-cpython-311 creating build/lib.linux-aarch64-cpython-311/cairo copying cairo/__init__.py -> build/lib.linux-aarch64-cpython-311/cairo copying cairo/__init__.pyi -> build/lib.linux-aarch64-cpython-311/cairo copying cairo/py.typed -> build/lib.linux-aarch64-cpython-311/cairo running build_ext Package xproto was not found in the pkg-config search path. Perhaps you should add the directory containing `xproto.pc' to the PKG_CONFIG_PATH environment variable Package 'xproto', required by 'x11', not found Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']' returned non-zero exit status 1. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for pycairo Failed to build pycairo ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip. ~ $ ```
pip install spotdl ``` ~ $ pip install spotdl Collecting spotdl Downloading spotdl-4.2.1-py3-none-any.whl.meta data (8.0 kB) Collecting beautifulsoup4<5.0.0,>=4.12.2 (from s potdl) Downloading beautifulsoup4-4.12.2-py3-none-any .whl (142 kB) ━━━━━━━━━━ 143.0/143… 302.0 eta 0:00:00 kB kB/s Collecting fastapi<0.104.0,>=0.103.0 (from spotd l) Downloading fastapi-0.103.2-py3-none-any.whl.m etadata (24 kB) Collecting mutagen<2.0.0,>=1.46.0 (from spotdl) Using cached mutagen-1.47.0-py3-none-any.whl.m etadata (1.7 kB) Collecting platformdirs<4.0.0,>=3.10.0 (from spo tdl) Downloading platformdirs-3.11.0-py3-none-any.w hl.metadata (11 kB) Collecting pydantic<3.0.0,>=2.3.0 (from spotdl) Downloading pydantic-2.5.1-py3-none-any.whl.me tadata (64 kB) ━━━━━━━━━━ 64.1/64.1 527.4 eta 0:00:00 kB kB/s Collecting pykakasi<3.0.0,>=2.2.1 (from spotdl) Downloading pykakasi-2.2.1-py3-none-any.whl (2 .4 MB) ━━━━━━━━━━━ 2.4/2.4 MB 3.0 MB/s eta 0:00:00 Collecting python-slugify<9.0.0,>=8.0.1 (from py thon-slugify[unidecode]<9.0.0,>=8.0.1->spotdl) Downloading python_slugify-8.0.1-py2.py3-none- any.whl (9.7 kB) Collecting pytube<16.0.0,>=15.0.0 (from spotdl) Downloading pytube-15.0.0-py3-none-any.whl (57 kB) ━━━━━━━━━━ 57.6/57.6 466.8 eta 0:00:00 kB kB/s Collecting rapidfuzz==2.15.1 (from spotdl) Downloading rapidfuzz-2.15.1.tar.gz (1.2 MB) ━━━━━━━━━━━ 1.2/1.2 MB 3.3 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting requests<3.0.0,>=2.31.0 (from spotdl) Downloading requests-2.31.0-py3-none-any.whl.m etadata (4.6 kB) Collecting rich<14.0.0,>=13.5.2 (from spotdl) Downloading rich-13.7.0-py3-none-any.whl.metad ata (18 kB) Collecting soundcloud-v2<2.0.0,>=1.3.1 (from spo tdl) Downloading soundcloud_v2-1.3.1-py3-none-any.w hl (13 kB) Collecting spotipy<3.0.0,>=2.23.0 (from spotdl) Downloading spotipy-2.23.0-py3-none-any.whl (2 9 kB) Collecting syncedlyrics<0.6.0,>=0.5.0 (from spot dl) Downloading syncedlyrics-0.5.0-py3-none-any.wh l (12 kB) Collecting typing-extensions<5.0.0,>=4.7.1 (from spotdl) Downloading typing_extensions-4.8.0-py3-none-a ny.whl.metadata (3.0 kB) Collecting uvicorn<0.24.0,>=0.23.2 (from spotdl) Downloading uvicorn-0.23.2-py3-none-any.whl.me tadata (6.2 kB) Collecting yt-dlp<2024.0.0,>=2023.7.6 (from spot dl) Downloading yt_dlp-2023.11.16-py2.py3-none-any .whl.metadata (160 kB) ━━━━━━━━━━ 160.5/160… 265.5 eta 0:00:00 kB kB/s Collecting ytmusicapi<2.0.0,>=1.2.1 (from spotdl ) Downloading ytmusicapi-1.3.2-py3-none-any.whl. metadata (5.5 kB) Collecting soupsieve>1.2 (from beautifulsoup4<5. 0.0,>=4.12.2->spotdl) Downloading soupsieve-2.5-py3-none-any.whl.met adata (4.7 kB) Collecting anyio<4.0.0,>=3.7.1 (from fastapi<0.1 04.0,>=0.103.0->spotdl) Downloading anyio-3.7.1-py3-none-any.whl.metad ata (4.7 kB) Collecting starlette<0.28.0,>=0.27.0 (from fasta pi<0.104.0,>=0.103.0->spotdl) Downloading starlette-0.27.0-py3-none-any.whl. metadata (5.8 kB) Collecting annotated-types>=0.4.0 (from pydantic <3.0.0,>=2.3.0->spotdl) Downloading annotated_types-0.6.0-py3-none-any .whl.metadata (12 kB) Collecting pydantic-core==2.14.3 (from pydantic< 3.0.0,>=2.3.0->spotdl) Downloading pydantic_core-2.14.3.tar.gz (359 k B) ━━━━━━━━━━ 359.1/359… 362.5 eta 0:00:00 kB kB/s Installing build dependencies ... error error: subprocess-exited-with-error × pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> [61 lines of output] Collecting maturin<2,>=1 Downloading maturin-1.3.2.tar.gz (176 kB ) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 176.1/176.1 kB 585.3 kB/s eta 0:00:00 Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: sta rted Getting requirements to build wheel: fin ished with status 'done' Preparing metadata (pyproject.toml): sta rted Preparing metadata (pyproject.toml): fin ished with status 'done' Collecting typing-extensions!=4.7.0,>=4.6. 0 Using cached typing_extensions-4.8.0-py3 -none-any.whl.metadata (3.0 kB) Downloading typing_extensions-4.8.0-py3-no ne-any.whl (31 kB) Building wheels for collected packages: ma turin Building wheel for maturin (pyproject.to ml): started Building wheel for maturin (pyproject.to ml): finished with status 'error' error: subprocess-exited-with-error × Building wheel for maturin (pyproject. toml) did not run successfully. │ exit code: 1 ╰─> [35 lines of output] /data/data/com.termux/files/usr/tmp/ pip-build-env-2mpioh0c/overlay/lib/python3.11/si te-packages/setuptools/config/_apply_pyprojectto ml.py:80: SetuptoolsWarning: `install_requires` overwritten in `pyproject.toml` (dependencies) corresp(dist, value, root_dir) running bdist_wheel running build running build_py creating build creating build/lib.linux-aarch64-cpy thon-311 creating build/lib.linux-aarch64-cpy thon-311/maturin copying maturin/__init__.py -> build /lib.linux-aarch64-cpython-311/maturin copying maturin/__main__.py -> build /lib.linux-aarch64-cpython-311/maturin copying maturin/import_hook.py -> bu ild/lib.linux-aarch64-cpython-311/maturin running egg_info creating maturin.egg-info writing maturin.egg-info/PKG-INFO writing dependency_links to maturin. egg-info/dependency_links.txt writing requirements to maturin.egg- info/requires.txt writing top-level names to maturin.e gg-info/top_level.txt writing manifest file 'maturin.egg-i nfo/SOURCES.txt' reading manifest file 'maturin.egg-i nfo/SOURCES.txt' reading manifest template 'MANIFEST. in' warning: no files found matching '*. json' under directory 'src/python_interpreter' writing manifest file 'maturin.egg-i nfo/SOURCES.txt' running build_ext running build_rust error: can't find Rust compiler If you are using an outdated pip ver sion, it is possible a prebuilt wheel is availab le for this package but pip is not able to insta ll from it. Installing from the wheel would avoi d the need for a Rust compiler. To update pip, run: pip install --upgrade pip and then retry package installation. If you did intend to build this pack age from source, try installing a Rust compiler from your system package manager and ensure it i s on the PATH during installation. Alternatively , rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain. [end of output] note: This error originates from a subpr ocess, and is likely not a problem with pip. ERROR: Failed building wheel for maturin Failed to build maturin ERROR: Could not build wheels for maturin, which is required to install pyproject.toml-bas ed projects [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × pip subprocess to install build dependencies d id not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, a nd is likely not a problem with pip. ~ $ ```

What is the expected behavior?

The packages install without error

System information

Manamama commented 4 months ago

Quick FYI:

  1. Both work for me without a hitch, e.g.: ~/downloads $ pip install mat2 Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com Collecting mat2 Downloading mat2-0.13.4-py3-none-any.whl.metadata (7.8 kB) Requirement already satisfied: mutagen in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from mat2) (1.47.0) Requirement already satisfied: PyGObject in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from mat2) (3.44.1) Requirement already satisfied: pycairo in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from mat2) (1.26.0) Downloading mat2-0.13.4-py3-none-any.whl (40 kB) ━━━━━━━━━━━━ 41.0/41.0 605.7 kB/s eta 0:00:00 kB Installing collected packages: mat2 Successfully installed mat2-0.13.4 ~/downloads $

  2. Try with --no-build-isolation, or with --no-binary.

ticklemyIP commented 4 months ago

Managed to install mat2 with --no-binary :all, --no-build-isolation did not work. However after mat2 is installed and I try to use the command it gives me this:

~ $ mat2                                        
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/bin/mat2
", line 14, in <module>                         
    from libmat2 import parser_factory, UNSUPPOR
TED_EXTENSIONS                                  
  File "/data/data/com.termux/files/usr/lib/pyth
on3.11/site-packages/libmat2/parser_factory.py",
 line 34, in <module>
    __load_all_parsers()                        
  File "/data/data/com.termux/files/usr/lib/pyth
on3.11/site-packages/libmat2/parser_factory.py",
 line 31, in __load_all_parsers
    importlib.import_module('.' + name, package=
'libmat2')
  File "/data/data/com.termux/files/usr/lib/pyth
on3.11/importlib/__init__.py", line 126, in impo
rt_module
    return _bootstrap._gcd_import(name[level:], 
package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^
  File "/data/data/com.termux/files/usr/lib/pyth
on3.11/site-packages/libmat2/images.py", line 7,
 in <module>
    import gi
ModuleNotFoundError: No module named 'gi'
~ $

Would you mind writing down your variables and prerequisites so that I can try replicating your environment?

Manamama commented 4 months ago

The likely missing package name bolded. (i may have had git cloned it, so i do not remember how i got it by now): .~ $ uname -a Linux localhost 4.14.186+ #1 SMP PREEMPT Thu Mar 17 16:28:22 CST 2022 aarch64 Android ~ $ which mat2 /data/data/com.termux/files/usr/bin/mat2 ~ $ pip show mat2 Name: mat2 Version: 0.13.4 Summary: A handy tool to trash your metadata Home-page: https://0xacab.org/jvoisin/mat2 Author: Julien (jvoisin) Voisin Author-email: julien.voisin+mat2@dustri.org License: Location: /data/data/com.termux/files/usr/lib/python3.11/site-packages Requires: mutagen, pycairo, PyGObject Required-by: ~ $ mat2 --version mat2 0.13.4 ~ $

And, for good measure: pip show spotdl Name: spotdl Version: 4.2.5 Summary: Download your Spotify playlists and songs along with album art and metadata Home-page: https://github.com/spotDL/spotify-downloader/ Author: spotDL Team Author-email: spotdladmins@googlegroups.com License: MIT Location: /data/data/com.termux/files/usr/lib/python3.11/site-packages Requires: beautifulsoup4, fastapi, mutagen, platformdirs, pydantic, pykakasi, python-slugify, pytube, rapidfuzz, requests, rich, setuptools, soundcloud-v2, spotipy, syncedlyrics, uvicorn, yt-dlp, ytmusicapi Required-by: ~ $ - but that kveteches re mutagen for now, which i indeed have a couple: 'AttributeError: module 'mutagen' has no attribute 'Tags'

Another tip: ask MS Copilot or Perplexity AI for hunting down the missing bits: worked for me.

PS2: Prooted Debian handles almost all such installs, with same resulting speed mostly, including CNNs etc.

ticklemyIP commented 3 months ago

Okay turns out all I had to do was install pycairo and pygobject with pkg. After that I was able to install mat2 with pip. However when running the command mat2 I got the message Namespace GdkPixbuf not available which I was able to fix by installing the package with pkg. However there is another message Namespace Rsvg not available when running the command again. At this point I'm stuck. @Manamama do you have any tips?

ticklemyIP commented 3 months ago

Huh okay so after running pkg install poppler gdk-pixbuf librsvg ffmpeg mat2 seems to run properly now. Installed exiftool to satisfy all dependencies. I guess it would be still better if it would run natively but at least this works now. (spotdl still doesnt run with pydantic-core compilation throwing errors but whatever)

Manamama commented 3 months ago

Congrats @ticklemyIP .

I know nothing re mat2 as such, but a quick test shows it works without a glitch (I have just reinstalled it, too, a refreshed Termux) and even compresses images a lot:

~/downloads $ mat2 /storage/7B27-F244/DCIM/Camera/IMG20240527115641.jpg
~/downloads $ mediainfo /storage/7B27-F244/DCIM/Camera/IMG20240527115641.jpg
General
Complete name                            : /storage/7B27-F244/DCIM/Camera/IMG20240527115641.jpg
Format                                   : JPEG
File size                                : 3.62 MiB

Image
Format                                   : JPEG
Width                                    : 3 468 pixels
Height                                   : 4 624 pixels
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Compression mode                         : Lossy
Stream size                              : 3.62 MiB (100%)

~/downloads $ mediainfo /storage/7B27-F244/DCIM/Camera/IMG20240527115641.cleaned.jpg
General
Complete name                            : /storage/7B27-F244/DCIM/Camera/IMG20240527115641.cleaned.jpg
Format                                   : JPEG
File size                                : 1.26 MiB

Image
Format                                   : JPEG
Width                                    : 3 468 pixels
Height                                   : 4 624 pixels
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Compression mode                         : Lossy
Stream size                              : 1.26 MiB (100%)

~/downloads $

+

~/downloads $ pip show mat2                     Name: mat2                                      Version: 0.13.4                                 Summary: A handy tool to trash your metadata    Home-page: https://0xacab.org/jvoisin/mat2      Author: Julien (jvoisin) Voisin                 Author-email: julien.voisin+mat2@dustri.org     License:                                        Location: /data/data/com.termux/files/usr/lib/python3.11/site-packages                          Requires: mutagen, pycairo, PyGObject           Required-by:                                    ~/downloads $