termux / termux-packages

A package build system for Termux.
https://termux.dev
Other
13.02k stars 2.99k forks source link

[Bug]: Cant install cryptography for python ?? ERROR: Failed building wheel for cryptography #18239

Closed erickyun closed 11 months ago

erickyun commented 11 months ago

Problem description

Cant install cryptography for python I keep getting ERROR: Failed building wheel for cryptography

I would appreciate if someone could please help me?

What steps will reproduce the bug?

pip install cryptography

Log Of Error

What is the expected behavior?

No response

System information

termux-info:

Termux Variables:
TERMUX_API_VERSION=0.50.1
TERMUX_APK_RELEASE=F_DROİD
TERMUX_APP_PACKAGE_MANAGER=apt
TERMUX_APP_PID=5081
TERMUX_IS_DEBUGGABLE_BUILD=0
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_VERSION=0.118.0
Packages CPU architecture:
aarch64
Subscribed repositories:
# sources.list
deb https://packages-cf.termux.dev/apt/termux-main stable main
# tur-repo (sources.list.d/tur.list)
deb https://tur.kcubeterm.com tur-packages tur tur-on-device tur-continuous
# root-repo (sources.list.d/root.list)
deb https://packages-cf.termux.dev/apt/termux-root root stable
# x11-repo (sources.list.d/x11.list)
deb https://packages-cf.termux.dev/apt/termux-x11 x11 main
Updatable packages:
All packages up to date
termux-tools version:
1.39.1
Android version:
11
Kernel build information:
Linux localhost 4.14.186-g7c18952d3c68 #1 SMP PREEMPT Wed May 25 19:55:45 WIB 2022 aarch64 Android
Device manufacturer:
Xiaomi
Device model:
Redmi Note 8 Pro
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.styling versionCode:30
romanovj commented 11 months ago

Failed to find tool. Is aarch64-linux-android-ar ...

pkg install binutils-is-llvm

erickyun commented 11 months ago

Failed to find tool. Is aarch64-linux-android-ar ...

pkg install binutils-is-llvm

I still am getting Error?

LogOfError: ``` pip install cryptography Collecting cryptography Downloading cryptography-41.0.4.tar.gz (630 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━ 630.5/630.5 kB 7.8 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: cffi>=1.12 in ./venv/lib/python3.11/site-packages (from cryptography) (1.16.0) Requirement already satisfied: pycparser in ./venv/lib/python3.11/site-packages (from cffi>=1.12->cryptography) (2.21) Building wheels for collected packages: cryptography Building wheel for cryptography (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for cryptography (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [172 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/cryptography copying src/cryptography/fernet.py -> build/lib.linux-aarch64-cpython-311/cryptography copying src/cryptography/utils.py -> build/lib.linux-aarch64-cpython-311/cryptography copying src/cryptography/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography copying src/cryptography/__about__.py -> build/lib.linux-aarch64-cpython-311/cryptography copying src/cryptography/exceptions.py -> build/lib.linux-aarch64-cpython-311/cryptography creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat copying src/cryptography/hazmat/_oid.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat copying src/cryptography/hazmat/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat creating build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/base.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/general_name.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/extensions.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/name.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/certificate_transparency.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/ocsp.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 copying src/cryptography/x509/oid.py -> build/lib.linux-aarch64-cpython-311/cryptography/x509 creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/_serialization.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/_cipheralgorithm.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/_asymmetric.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/types.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/asymmetric creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/ciphers creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/serialization creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/kdf creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/twofactor copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/twofactor copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/twofactor copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/primitives/twofactor creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/backends/openssl creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/openssl copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/openssl copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/openssl copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/openssl running egg_info writing src/cryptography.egg-info/PKG-INFO writing dependency_links to src/cryptography.egg-info/dependency_links.txt writing requirements to src/cryptography.egg-info/requires.txt writing top-level names to src/cryptography.egg-info/top_level.txt reading manifest file 'src/cryptography.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.c' under directory 'src/_cffi_src' warning: no files found matching '*.h' under directory 'src/_cffi_src' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'vectors' warning: no previously-included files matching '*' found under directory 'vectors' warning: no previously-included files found matching 'src/rust/target' warning: no previously-included files matching '*' found under directory 'src/rust/target' warning: no previously-included files matching '*' found under directory '.github' warning: no previously-included files found matching 'release.py' warning: no previously-included files found matching '.readthedocs.yml' warning: no previously-included files found matching 'ci-constraints-requirements.txt' warning: no previously-included files found matching 'mypy.ini' adding license file 'LICENSE' adding license file 'LICENSE.APACHE' adding license file 'LICENSE.BSD' writing manifest file 'src/cryptography.egg-info/SOURCES.txt' copying src/cryptography/py.typed -> build/lib.linux-aarch64-cpython-311/cryptography creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust copying src/cryptography/hazmat/bindings/_rust/__init__.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust copying src/cryptography/hazmat/bindings/_rust/_openssl.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust copying src/cryptography/hazmat/bindings/_rust/asn1.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust copying src/cryptography/hazmat/bindings/_rust/exceptions.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust copying src/cryptography/hazmat/bindings/_rust/ocsp.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust copying src/cryptography/hazmat/bindings/_rust/pkcs7.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust copying src/cryptography/hazmat/bindings/_rust/x509.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust creating build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/dh.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl copying src/cryptography/hazmat/bindings/_rust/openssl/x448.pyi -> build/lib.linux-aarch64-cpython-311/cryptography/hazmat/bindings/_rust/openssl running build_ext running build_rust error: rustup could not choose a version of rustc to run, because one wasn't specified explicitly, and no default is configured. help: run 'rustup default stable' to download the latest stable release of Rust and set it as your default toolchain. =============================DEBUG ASSISTANCE============================= If you are seeing a compilation error please try the following steps to successfully install cryptography: 1) Upgrade to the latest pip and try again. This will fix errors for most users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip 2) Read https://cryptography.io/en/latest/installation/ for specific instructions for your platform. 3) Check our frequently asked questions for more information: https://cryptography.io/en/latest/faq/ 4) Ensure you have a recent Rust toolchain installed: https://cryptography.io/en/latest/installation/#rust Python: 3.11.6 platform: Linux-4.14.186-g7c18952d3c68-aarch64-with-libc pip: n/a setuptools: 68.2.2 setuptools_rust: 1.7.0 rustc: n/a =============================DEBUG ASSISTANCE============================= error: can't find Rust compiler If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid 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 package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain. This package requires Rust >=1.56.0. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for cryptography Failed to build cryptography ERROR: Could not build wheels for cryptography, which is required to install pyproject.toml-based projects ```
erickyun commented 11 months ago

You can also use pkg install python-cryptography instead of building with pip and rust.

I'm trying to run this app on termux tg-index Which requires these python modules.

Do you have any solution for me please?

romanovj commented 11 months ago

error: can't find Rust compiler

pkg install rust

erickyun commented 11 months ago

error: can't find Rust compiler

pkg install rust

Still facing error? I would appreciate your help please? Log

romanovj commented 11 months ago

CARGO_BUILD_TARGET="$(rustc -Vv | grep "host" | awk '{print $2}')" pip install cryptography latest cryptography and numpy could be installed from main termux repo

pkg i python-numpy python-cryptography

erickyun commented 11 months ago

Still facing error sadly :(

Log

romanovj commented 11 months ago

no problem in clean termux

yes | pkg upgrade
pkg i python rust binutils-is-llvm
CARGO_BUILD_TARGET="$(rustc -Vv | grep "host" | awk '{print $2}')" pip install cryptography -v
...
Successfully installed cffi-1.16.0 cryptography-41.0.4 pycparser-2.21
erickyun commented 11 months ago

no problem in clean termux

yes | pkg upgrade
pkg i python rust binutils-is-llvm
CARGO_BUILD_TARGET="$(rustc -Vv | grep "host" | awk '{print $2}')" pip install cryptography -v
...
Successfully installed cffi-1.16.0 cryptography-41.0.4 pycparser-2.21

Why am I still facing error after clean termux?? I would appreciate if someone could please help me

Log

romanovj commented 11 months ago

did you change any variable?

you can try from termux directory

wget https://github.com/pyca/cryptography/archive/refs/tags/41.0.4.tar.gz
tar -xf 41.0.4.tar.gz
cd cryptography-41.0.4/src/rust
cargo test
erickyun commented 11 months ago

did you change any variable?

I dont know where should I look?

you can try from termux directory

wget https://github.com/pyca/cryptography/archive/refs/tags/41.0.4.tar.gz
tar -xf 41.0.4.tar.gz
cd cryptography-41.0.4/src/rust
cargo test

Thank you that worked for me