Installing cryptography==36.0.1 on Ubuntu 22.04 (ARMv7l) fails during the wheel build. Since there are no pre-compiled binaries for this architecture/version, it tries to build from source and hits a compatibility wall between the OpenSSL 3.0 headers and the current setuptools version (v82+). Specifically, the build script crashes looking for pkg_resources.version.
To fix, I had to downgrade the build tools and force the install to use those versions instead of pip's default isolated environment.
- Install system headers and ensure Rust is in PATH:
sudo apt-get update
sudo apt-get install -y build-essential libssl-dev libffi-dev python3-dev
export PATH="$HOME/.cargo/bin:$PATH"
- Downgrade to compatible build tool versions:
pip3 install "setuptools<60.0.0" "setuptools-rust==1.3.0"
- Install cryptography using the local environment (bypass build isolation):
pip3 install cryptography==36.0.1 --no-build-isolation
Verification:
python3 -c "import cryptography; print(cryptography.__version__)"
returned 36.0.1.
Restarted ./install.sh and the installation completed successfully.
Installing cryptography==36.0.1 on Ubuntu 22.04 (ARMv7l) fails during the wheel build. Since there are no pre-compiled binaries for this architecture/version, it tries to build from source and hits a compatibility wall between the OpenSSL 3.0 headers and the current setuptools version (v82+). Specifically, the build script crashes looking for pkg_resources.version.
To fix, I had to downgrade the build tools and force the install to use those versions instead of pip's default isolated environment.
Verification:
returned 36.0.1.
Restarted ./install.sh and the installation completed successfully.