Brewblox installation on Raspberrypi 4 not working

Hi
I just ordered the Spark 4 and tried to install brewblox on my new raspberrypi 4. But it’s not working. Done it several times, also with new image but never worked.
Always get this output:

Building wheels for collected packages: brewblox-ctl, cryptography
Building wheel for brewblox-ctl (PEP 517) … done
Created wheel for brewblox-ctl: filename=brewblox_ctl-1.0.0-py3-none-any.whl size=60963 sha256=90ab5287df7b63560053d8de1814f7eb664956f1234cb211f04d4377b87502de
Stored in directory: /home/pi/.cache/pip/wheels/1b/09/ba/3379589ccd424ef9a23f59e0d03e479035f385b96de0abd884
Building wheel for cryptography (PEP 517) … error
ERROR: Command errored out with exit status 1:
command: /home/pi/brewblox/.venv/bin/python3 /tmp/tmpxy3cwnc6_in_process.py build_wheel /tmp/tmpk_l6r9xj
cwd: /tmp/pip-install-ne3pjjq3/cryptography_516b2c960f3f46bfbb641797c51966ad
Complete output (168 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-armv7l-3.9
creating build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/about.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/init.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/utils.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/fernet.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/exceptions.py → build/lib.linux-armv7l-3.9/cryptography
creating build/lib.linux-armv7l-3.9/cryptography/hazmat
copying src/cryptography/hazmat/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat
copying src/cryptography/hazmat/_oid.py → build/lib.linux-armv7l-3.9/cryptography/hazmat
creating build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/general_name.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/oid.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/certificate_transparency.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/extensions.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/init.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/name.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/base.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/ocsp.py → build/lib.linux-armv7l-3.9/cryptography/x509
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_serialization.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hashes.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/padding.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_cipheralgorithm.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/keywrap.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_asymmetric.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/constant_time.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/cmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/poly1305.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/interfaces.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings
copying src/cryptography/hazmat/bindings/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/hotp.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/totp.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs7.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/ssh.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs12.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/base.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/rsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/types.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dh.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/padding.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ec.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/utils.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/kbkdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/scrypt.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/hkdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/concatkdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/x963kdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/aead.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/base.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/modes.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/algorithms.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/rsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hashes.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dh.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/encode_asn1.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ec.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x509.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/aead.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/utils.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ciphers.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/backend.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/decode_asn1.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/cmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/poly1305.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/_conditional.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/binding.py → build/lib.linux-armv7l-3.9/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’
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 matching '
’ found under directory ‘.github’
warning: no previously-included files found matching ‘release.py’
warning: no previously-included files found matching ‘.coveragerc’
warning: no previously-included files found matching ‘codecov.yml’
warning: no previously-included files found matching ‘.readthedocs.yml’
warning: no previously-included files found matching ‘dev-requirements.txt’
warning: no previously-included files found matching ‘tox.ini’
warning: no previously-included files found matching ‘mypy.ini’
warning: no previously-included files matching ‘’ found under directory ‘.zuul.d’
warning: no previously-included files matching '
’ found under directory ‘.zuul.playbooks’
adding license file ‘LICENSE’
adding license file ‘LICENSE.APACHE’
adding license file ‘LICENSE.BSD’
adding license file ‘LICENSE.PSF’
writing manifest file ‘src/cryptography.egg-info/SOURCES.txt’
copying src/cryptography/py.typed → build/lib.linux-armv7l-3.9/cryptography
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/init.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/asn1.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/ocsp.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/x509.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
running build_ext
running build_rust

  =============================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.9.2
  platform: Linux-5.10.63-v7l+-armv7l-with-glibc2.31
  pip: n/a
  setuptools: 59.6.0
  setuptools_rust: 1.1.2
  =============================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.41.0.

ERROR: Failed building wheel for cryptography
Successfully built brewblox-ctl
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
pi@raspberrypi:~ $

Did all the updates before but nothing seems to work.
Thanks for your help.

It looks like the prebuilt version is still busy building.

To manually install a valid version:

cd brewblox
source .venv/bin/activate
pip3 install cryptography==36.0.0
cd ..

Then re-run the install script.

1 Like

Thanks Bob. I will try this. So you mean after manually install a valid version of cryptography I can just run the install command again (wget -qO - https://www.brewblox.com/install | bash)?

Yes. The installer will reuse existing virtualenvs, and pip will detect that a valid version of cryptography is already present.

1 Like

I tried it but it looks that it is still not working:

pi@raspberrypi:~/brewblox $ source .venv/bin/activate
(.venv) pi@raspberrypi:~/brewblox $ pip3 install cryptography==36.0.0
Looking in indexes: Simple index, piwheels - Simple index
Collecting cryptography==36.0.0
Downloading https://www.piwheels.org/simple/cryptography/cryptography-36.0.0-cp39-cp39-linux_armv7l.whl (2.7 MB)
|████████████████████████████████| 2.7 MB 1.2 MB/s
Collecting cffi>=1.12
Using cached https://www.piwheels.org/simple/cffi/cffi-1.15.0-cp39-cp39-linux_armv7l.whl (369 kB)
Collecting pycparser
Using cached https://www.piwheels.org/simple/pycparser/pycparser-2.21-py2.py3-none-any.whl (119 kB)
Installing collected packages: pycparser, cffi, cryptography
Successfully installed cffi-1.15.0 cryptography-36.0.0 pycparser-2.21
(.venv) pi@raspberrypi:~/brewblox $ cd …
(.venv) pi@raspberrypi:~ $ wget -qO - https://www.brewblox.com/install | bash
INFO Installing Apt packages…
Get:1 Index of /raspbian bullseye InRelease [15.0 kB]
Get:2 Index of /debian bullseye InRelease [23.5 kB]
Get:3 Index of /raspbian bullseye/main armhf Packages [13.2 MB]
Get:4 Index of /debian bullseye/main armhf Packages [242 kB]
Fetched 13.5 MB in 9s (1,498 kB/s)
Reading package lists… Done
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
python3-venv is already the newest version (3.9.2-3).
python3-pip is already the newest version (20.3.4-4+rpt1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
INFO Brewblox dir is “/home/pi/brewblox”
INFO Brewblox release is “edge”
WARN /home/pi/brewblox already exists, but is not a Brewblox directory.
(.venv) pi@raspberrypi:~ $ cd brewblox
(.venv) pi@raspberrypi:~/brewblox $ ls -all
total 64
drwxr-xr-x 3 pi pi 4096 Dec 16 08:58 .
drwxr-xr-x 4 pi pi 4096 Dec 16 08:59 …
-rw-r–r-- 1 pi pi 50883 Nov 29 17:59 brewblox-ctl.tar.gz
drwxr-xr-x 6 pi pi 4096 Dec 16 08:58 .venv
(.venv) pi@raspberrypi:~/brewblox $ brewblox-ctl add-spark --name spark-one --force --simulation
-bash: brewblox-ctl: command not found
(.venv) pi@raspberrypi:~/brewblox $

Now I get the same error again.

Collecting ifaddr>=0.1.7
Using cached https://www.piwheels.org/simple/ifaddr/ifaddr-0.1.7-py2.py3-none-any.whl (10 kB)
Building wheels for collected packages: brewblox-ctl, cryptography
Building wheel for brewblox-ctl (PEP 517) … done
Created wheel for brewblox-ctl: filename=brewblox_ctl-1.0.0-py3-none-any.whl size=60963 sha256=90ab5287df7b63560053d8de1814f7eb664956f1234cb211f04d4377b87502de
Stored in directory: /home/pi/.cache/pip/wheels/1b/09/ba/3379589ccd424ef9a23f59e0d03e479035f385b96de0abd884
Building wheel for cryptography (PEP 517) … error
ERROR: Command errored out with exit status 1:
command: /home/pi/brewblox/.venv/bin/python3 /tmp/tmpyqi2xk4r_in_process.py build_wheel /tmp/tmptj6p0it2
cwd: /tmp/pip-install-liun0_1r/cryptography_b9b085f469c941a692d8ae241422309b
Complete output (168 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-armv7l-3.9
creating build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/about.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/init.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/utils.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/fernet.py → build/lib.linux-armv7l-3.9/cryptography
copying src/cryptography/exceptions.py → build/lib.linux-armv7l-3.9/cryptography
creating build/lib.linux-armv7l-3.9/cryptography/hazmat
copying src/cryptography/hazmat/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat
copying src/cryptography/hazmat/_oid.py → build/lib.linux-armv7l-3.9/cryptography/hazmat
creating build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/general_name.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/oid.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/certificate_transparency.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/extensions.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/init.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/name.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/base.py → build/lib.linux-armv7l-3.9/cryptography/x509
copying src/cryptography/x509/ocsp.py → build/lib.linux-armv7l-3.9/cryptography/x509
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_serialization.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hashes.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/padding.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_cipheralgorithm.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/keywrap.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_asymmetric.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/constant_time.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/cmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/poly1305.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/interfaces.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings
copying src/cryptography/hazmat/bindings/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/hotp.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/totp.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/twofactor
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs7.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/ssh.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs12.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/base.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/serialization
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/rsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/types.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dh.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/padding.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ec.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/utils.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/asymmetric
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/kbkdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/scrypt.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/hkdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/concatkdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/x963kdf.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/kdf
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/aead.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/base.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/modes.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/algorithms.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/primitives/ciphers
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/rsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hashes.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dh.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/encode_asn1.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ec.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x509.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/aead.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dsa.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x25519.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/utils.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ciphers.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/backend.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed448.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/decode_asn1.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/cmac.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/poly1305.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/backends/openssl
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/_conditional.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/init.py → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/binding.py → build/lib.linux-armv7l-3.9/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’
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 matching '
’ found under directory ‘.github’
warning: no previously-included files found matching ‘release.py’
warning: no previously-included files found matching ‘.coveragerc’
warning: no previously-included files found matching ‘codecov.yml’
warning: no previously-included files found matching ‘.readthedocs.yml’
warning: no previously-included files found matching ‘dev-requirements.txt’
warning: no previously-included files found matching ‘tox.ini’
warning: no previously-included files found matching ‘mypy.ini’
warning: no previously-included files matching ‘’ found under directory ‘.zuul.d’
warning: no previously-included files matching '
’ found under directory ‘.zuul.playbooks’
adding license file ‘LICENSE’
adding license file ‘LICENSE.APACHE’
adding license file ‘LICENSE.BSD’
adding license file ‘LICENSE.PSF’
writing manifest file ‘src/cryptography.egg-info/SOURCES.txt’
copying src/cryptography/py.typed → build/lib.linux-armv7l-3.9/cryptography
creating build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/init.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/asn1.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/ocsp.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/x509.pyi → build/lib.linux-armv7l-3.9/cryptography/hazmat/bindings/_rust
running build_ext
running build_rust

  =============================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.9.2
  platform: Linux-5.10.63-v7l+-armv7l-with-glibc2.31
  pip: n/a
  setuptools: 59.6.0
  setuptools_rust: 1.1.2
  =============================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.41.0.

ERROR: Failed building wheel for cryptography
Successfully built brewblox-ctl
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
pi@raspberrypi:~ $

I just pushed a fix that pins the dependency at the correct version. If you run the script again, it should now immediately use 36.0.0.

1 Like

Thanks Bob, try to install it again now…hopefully it will work :+1:

Now it looks better. It is installing now.

But got this:

INFO Copying docker-compose.yml…
INFO Stopping services…
Removing network brewblox_default
WARNING: Network brewblox_default not found.
INFO Creating datastore directory…
INFO Creating history directory…
INFO Creating gateway directory…
INFO Creating SSL certificate…
edge: Pulling from brewblox/omgwtfssl
a14774a5a62e: Pull complete
250b3ebedc3a: Pull complete
b47cef41a312: Pull complete

Is that a problem?

I guess you’re talking about this line?

WARNING: Network brewblox_default not found.

That’s not a problem. It double checked whether services weren’t running from a previous install, and lets you know they weren’t.

1 Like

Perfect, thank you. Now it looks like everything is running. The UI is starting up.

FYI, I ran into something similar (but not exactly the same).

I was able to get around it by installing rust manually using this command (taken from https://www.rust-lang.org/tools/install):

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Thanks for letting us know. I’ll add bcrypt to the list of explicitly managed dependencies.