Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong blis version on Termux #924

Open
Manamama opened this issue Mar 21, 2024 · 1 comment
Open

Wrong blis version on Termux #924

Manamama opened this issue Mar 21, 2024 · 1 comment

Comments

@Manamama
Copy link

Manamama commented Mar 21, 2024

When installing spacy on Termux, the dependencies chain kept failing with your thinc.

When looking closer :

... 
Collecting blis<0.8.0,>=0.7.8 (from thinc<8.3.0,>=8.2.2)
  Downloading blis-0.7.11.tar.gz (2.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 667.4 kB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: murmurhash<1.1.0,>=1.0.2 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (1.0.10)
Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (2.0.8)
Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (3.0.9)
Requirement already satisfied: wasabi<1.2.0,>=0.8.1 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (1.1.2)
Requirement already satisfied: srsly<3.0.0,>=2.4.0 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (2.4.8)
Requirement already satisfied: catalogue<2.1.0,>=2.0.4 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (2.0.10)
Requirement already satisfied: confection<1.0.0,>=0.0.1 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (0.1.4)
Requirement already satisfied: setuptools in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (69.1.0)
Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (2.6.1)
Requirement already satisfied: packaging>=20.0 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (24.0)
Requirement already satisfied: numpy>=1.19.0 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from thinc<8.3.0,>=8.2.2) (1.26.4)
Requirement already satisfied: annotated-types>=0.4.0 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->thinc<8.3.0,>=8.2.2) (0.5.0)
Requirement already satisfied: pydantic-core==2.16.2 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->thinc<8.3.0,>=8.2.2) (2.16.2)
Requirement already satisfied: typing-extensions>=4.6.1 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->thinc<8.3.0,>=8.2.2) (4.10.0)
Building wheels for collected packages: blis
  Building wheel for blis (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for blis (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [107 lines of output]
... 
        File "/data/data/com.termux/files/usr/tmp/pip-build-env-e04p2970/overlay/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 91, in run
          _build_ext.run(self)
        File "/data/data/com.termux/files/usr/tmp/pip-build-env-e04p2970/overlay/lib/python3.11/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
          _build_ext.build_ext.run(self)
        File "/data/data/com.termux/files/usr/tmp/pip-build-env-e04p2970/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
          self.build_extensions()
        File "<string>", line 104, in build_extensions
        File "<string>", line 232, in compile_objects
        File "<string>", line 247, in build_object
        File "/data/data/com.termux/files/usr/lib/python3.11/subprocess.py", line 413, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['clang', '-c', '/data/data/com.termux/files/usr/tmp/pip-install-y8rnef8j/blis_711203a8e9a447a2b9dcb45ec3fd79d7/blis/_src/kernels/armv8a/3/bli_gemm_armv8a_asm_d6x8.c', '-o', '/data/data/com.termux/files/usr/tmp/tmp741d3zs7/bli_gemm_armv8a_asm_d6x8.o', '-O3', '-ftree-vectorize', '-mtune=cortex-a57', '-march=armv8-a+fp+simd', '-mcpu=cortex-a57', '-fPIC', '-std=c99', '-D_GNU_SOURCE', '-D_POSIX_C_SOURCE=200112L', '-DBLIS_VERSION_STRING="0.7.0"', '-DBLIS_IS_BUILDING_LIBRARY', '-Iinclude/linux-cortexa57', '-I./frame/3/', '-I./frame/ind/ukernels/', '-I./frame/3/', '-I./frame/1m/', '-I./frame/1f/', '-I./frame/1/', '-I./frame/include', '-I/data/data/com.termux/files/usr/tmp/pip-install-y8rnef8j/blis_711203a8e9a447a2b9dcb45ec3fd79d7/blis/_src/include/linux-cortexa57']' returned non-zero exit status 1.
      [end of output]

i realzed that it is because of the too strict version of blis in your requirements.

This blis installs "natively" in Termux:

~/downloads/spaCy $ pip show blis
Name: blis
Version: 0.9.1
Summary: The Blis BLAS-like linear algebra library, as a self-contained C-extension.
Home-page: https://github.com/explosion/cython-blis
Author: Explosion
Author-email: contact@explosion.ai
License: BSD
Location: /data/data/com.termux/files/usr/lib/python3.11/site-packages
Requires: numpy
Required-by: thinc
~/downloads/spaCy $ 

Advice: be less restrictive in these.

Ref.

/downloads/spaCy $ termux-info

Termux Variables:
TERMUX_API_VERSION=0.50.1
TERMUX_APK_RELEASE=F_DROID
TERMUX_APP_PACKAGE_MANAGER=apt
TERMUX_APP_PID=19453
TERMUX_IS_DEBUGGABLE_BUILD=0
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_VERSION=0.118.0
TERMUX__USER_ID=0
Packages CPU architecture:
aarch64
Subscribed repositories:

sources.list

deb https://mirror.sunred.org/termux/termux-main stable main

sources.list.d/x11.list

deb https://mirror.sunred.org/termux/termux-x11 x11 main

sources.list.d/tur.list

deb https://tur.kcubeterm.com tur-packages tur tur-on-device tur-continuous

sources.list.d/root.list

deb https://mirror.sunred.org/termux/termux-root root stable

sources.list.d/pointless.list

deb https://its-pointless.github.io/files/21 termux extras
Updatable packages:
All packages up to date
termux-tools version:
1.41.2
Android version:
11
Kernel build information:
Linux localhost 4.14.186+ #1 SMP PREEMPT Thu Mar 17 16:28:22 CST 2022 aarch64 Android
Device manufacturer:
realme
Device model:
RMX3085
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so
Installed termux plugins:
com.termux.api versionCode:51
com.termux.x11 versionCode:14
com.termux.boot versionCode:7
com.termux.widget versionCode:13

@danieldk
Copy link
Contributor

i realzed that it is because of the too strict version of blis in your requirements.

blis is intentionally pinned to an older version because blis 0.9.x has known issues leading to segmentation faults in some kernels. I am a bit surprised however that pip does not install a binary wheel, since we do have an aarch64 wheel for Python 3.11:

https://pypi.org/project/blis/0.7.11/#files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants