Cannot upgrade current Home Assistant Core installation to 2021.10

I cannot upgerade my current HA Core 2021.9.7 to 2021.10.

During the upgrade proces I got the message that cryptography cannot be build:.
Before the upgrade I installed Rust with this command: curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh

No cargo directory can be found. Anyone has some advice?
This is the console output:

Building wheels for collected packages: cryptography
Building wheel for cryptography (PEP 517) … error
ERROR: Command errored out with exit status 1:
command: /home/homeassistant/.pyenv/versions/3.8.10/bin/python3.8 /home/homeassistant/.pyenv/versions/3.8.10/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmptq564qla
cwd: /tmp/pip-install-nagwnmlu/cryptography_456bf05f082b4390ae1edd9b25c72631
Complete output (153 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-armv7l-3.8
creating build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/utils.py → build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/fernet.py → build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/exceptions.py → build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/init.py → build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/about.py → build/lib.linux-armv7l-3.8/cryptography
creating build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/oid.py → build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/ocsp.py → build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/name.py → build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/general_name.py → build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/extensions.py → build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/certificate_transparency.py → build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/base.py → build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/init.py → build/lib.linux-armv7l-3.8/cryptography/x509
creating build/lib.linux-armv7l-3.8/cryptography/hazmat
copying src/cryptography/hazmat/_types.py → build/lib.linux-armv7l-3.8/cryptography/hazmat
copying src/cryptography/hazmat/_oid.py → build/lib.linux-armv7l-3.8/cryptography/hazmat
copying src/cryptography/hazmat/_der.py → build/lib.linux-armv7l-3.8/cryptography/hazmat
copying src/cryptography/hazmat/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/poly1305.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/padding.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/keywrap.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hmac.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hashes.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/constant_time.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/cmac.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_serialization.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_cipheralgorithm.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_asymmetric.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings
copying src/cryptography/hazmat/bindings/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/interfaces.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/utils.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/totp.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/hotp.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/ssh.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs7.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs12.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/base.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/x963kdf.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/scrypt.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/kbkdf.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/hkdf.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/concatkdf.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/modes.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/base.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/algorithms.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/aead.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x448.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x25519.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/utils.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/rsa.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/padding.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed448.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ec.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dsa.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dh.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/binding.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/_conditional.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x509.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x448.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x25519.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/utils.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/rsa.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/poly1305.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ocsp.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hmac.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hashes.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/encode_asn1.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed448.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed25519.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ec.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dsa.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dh.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/decode_asn1.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/cmac.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ciphers.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/backend.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/aead.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/init.py → build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/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.8/cryptography
running build_ext
generating cffi module ‘build/temp.linux-armv7l-3.8/_padding.c’
creating build/temp.linux-armv7l-3.8
generating cffi module ‘build/temp.linux-armv7l-3.8/_openssl.c’
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.html for specific
     instructions for your platform.
  3) Check our frequently asked questions for more information:
     https://cryptography.io/en/latest/faq.html
  4) Ensure you have a recent Rust toolchain installed:
     https://cryptography.io/en/latest/installation.html#rust
  5) If you are experiencing issues with Rust for *this release only* you may
     set the environment variable `CRYPTOGRAPHY_DONT_BUILD_RUST=1`.
  =============================DEBUG ASSISTANCE=============================

error: [Errno 2] No such file or directory: ‘cargo’

ERROR: Failed building wheel for cryptography
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

Your problem is a lack of cargo, which you’d have eventually got from the links.

sudo apt install cargo
1 Like

And the lack of pastebin :wink:

see also

Thx guys, problem solved. sudo apt install cargo did the trick on my installation.

Just one question.
I’m having quite the same issue, moving from 2021.9.7 to 2021.10.1, core installation on BB.
So far any upgrade went fine, and before this I fortunately did, as usual, a backup of the flash card.
And this saved my life …
My question is which is the exact command sequence:

  1. curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh

(which user is supposed to run this command, e.g. sudo … ?)

  1. sudo apt install cargo
  2. Usual HA upgrade procedure

Is this correct?
And pip version should be upgraded beforehand as well? I have 20.2.4 version.

Thanks a lot for your help,
Franco