Radu
(Radu Ursache)
October 7, 2021, 10:01am
1
I’m running HASS from a python env and i updated each time a new update came out however today i cannot update 2021.10.0.
i get this after running python3 -m pip install --upgrade homeassistant
in the correct container:
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
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
i cannot update pip because HASS requires an old one. full log here
koying
(Chris B)
October 7, 2021, 10:24am
2
This is the relevant error, not pip.
You actually need rust since recent cryptography version, which I assume was bumped in this release.
azzis77
(Stefano)
October 7, 2021, 11:09am
3
Hello,
curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
and also
sudo apt -y install rustc
work for me!!
3 Likes
Same issue here in venv.
Fixed it by installing the Rust compiler:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Next try to upgrade HA again. Installing cryptography takes a while so don’t worry about that…
3 Likes
psfales
(Peter Fales)
October 7, 2021, 3:33pm
5
Thanks! The curl pipeline worked for me, but I found that when I ran it as root, it only installed it for the root user, so I had to run it as the homeassistant user to make it available to HA.
1 Like
erffrfez
(Andrew)
October 8, 2021, 3:09am
6
… and a small wrinkle that confused me. That curl install step asks what you want to do, with:
Proceed with installation (default)
Customize installation
Cancel installation
I typed “1”, and pressed enter (without the quotes). Seems that doesn’t match any of the choices, it cancels the installation. I assume I should have put “1)”, but to proceed from there, can just press enter.
erffrfez
(Andrew)
October 8, 2021, 10:35am
8
seems maybe an add-in/plug-in that those of us who have this problem are using needs to have its dependencies updated.
(referring to: Home Assistant Core -- TrueNAS CORE Community Plugin - #482 by adorobis )
I don’t have time now to do anything more than this but maybe this helps for someone getting a more proper fix
It is enough to install rust with standard freebsd package manager: pkg install rust
. All works ok afterwards.
lin
(King Ling)
October 9, 2021, 8:38pm
10
On my old hassbian installation on my Raspberry PI4B I used:
sudo apt install rustc
This fixed my update to 2021.10.2 errors.
Radu
(Radu Ursache)
October 9, 2021, 8:46pm
11
thanks guys, fixed it with sudo apt install rustc
1 Like
I also had the same issue. Then I did: sudo apt install rustc. That went well. Then I tried to update HA again, but got this:
Building wheels for collected packages: cryptography
Building wheel for cryptography (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /srv/homeassistant/bin/python3.8 /srv/homeassistant/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmp3uwuzyl4
cwd: /tmp/pip-install-gh906s55/cryptography_25d955d7317844eaafc2dd593c3a8cea
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/__init__.py -> build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/__about__.py -> build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/exceptions.py -> build/lib.linux-armv7l-3.8/cryptography
creating build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/__init__.py -> 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/base.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/extensions.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
creating 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/__init__.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/_types.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat
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/primitives
copying src/cryptography/hazmat/primitives/_cipheralgorithm.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/constant_time.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
copying src/cryptography/hazmat/primitives/keywrap.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/poly1305.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/_asymmetric.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
creating 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
copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends
creating 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
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
creating 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/utils.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/pkcs7.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
copying src/cryptography/hazmat/primitives/serialization/base.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/ssh.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
creating 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/dsa.py -> 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/utils.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/__init__.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/padding.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/x25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
creating 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/algorithms.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
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
creating 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/pbkdf2.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/x963kdf.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
copying src/cryptography/hazmat/primitives/kdf/scrypt.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
creating 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/rsa.py -> 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/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/dsa.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/utils.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/__init__.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/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/poly1305.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/ocsp.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/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
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
WARNING: Ignoring invalid distribution -ip (/srv/homeassistant/lib/python3.8/site-packages)
WARNING: Ignoring invalid distribution -ip (/srv/homeassistant/lib/python3.8/site-packages)
So what can I do now?
wciinet
(Mark)
October 12, 2021, 8:22pm
13
I did this first:
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
then did the upgrade and it worked.
11 Likes
mr2c12
(Mr2c12)
October 12, 2021, 9:06pm
14
Thank you @wciinet , setting that global variable was the only thing that got my update to complete.
dantist
October 19, 2021, 9:35am
15
How do I do this in a venv? It’s asking for a password for the user “homeassistant”.
dhaker
October 21, 2021, 5:19pm
16
I am having the same problem. I changed the password but still asking for a password.
dhaker
October 21, 2021, 5:29pm
17
Worked for me thanks for the help.
Radu
(Radu Ursache)
November 1, 2021, 1:55pm
18
you should install homeassistant as user pi instead of a new homeassistant user. i really don’t understand why the official guide advice for creating extra headaches for users. makes it a hell to edit the config yaml or do anything really if you’re not the default user
BoShek
November 3, 2021, 7:43am
19
I am using HA in venv. Since a few weeks I got the error failed building wheel for cryptography homeassistant
error when I trying to update.
I changed with sudo -u homeassistant -H -s
to the homeassistant user and then set the variable
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
Update worked!
Many, many thanks to @wciinet !!
mumla
November 6, 2022, 10:35am
20
After I already had some other cryptography problems while upgrading to HA 2022.10, I came up with the problem described here while upgrading to 2022.11.1 .
@kimme1024 ’s command was the way to go as the rustc-versions in the official Raspbian buster repositories don’t contain the required version.
What I want to add to this thread as Radu and dantist only scratch on the surface is that the routine mentioned above only installs rustc in the current user (see some more info about that here ). So when you run HA with its own user, your HA upgrade will still fail when you installed rustc while being logged in e.g. as the pi-user. So I ended up executing the rustc-install with the homeassistant-user. Took me a while to realize that, maybe I can speed up someones others upgrade with this hint
2 Likes