this is what I did just before the pip3 install command
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
pip3 install --upgrade homeassistant
this is what I did just before the pip3 install command
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
pip3 install --upgrade homeassistant
It works, thank you so much!
Cargo didn’t fix the problem but
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
did the trick!!!
I’m trying to build Python 3.8.12 but I’m stuck with the cryptography build error, no way to get rid of it. I tried export
, setting the value in .env
, passing the var to the pip install command… No way! I don’t know where to look at, any hint is welcome. Thanks
I also get this error, when trying to upgrade to 2021.12.3. I have tried with
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
but no luck. Also installing cargo does not help. Any ideas?
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/tmpzoxrpswf
cwd: /tmp/pip-install-d22wa9ai/cryptography_fd6fd4109a8a463c855d00034731061a
Complete output (208 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/exceptions.py -> build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/__init__.py -> build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/fernet.py -> build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/__about__.py -> build/lib.linux-armv7l-3.8/cryptography
copying src/cryptography/utils.py -> build/lib.linux-armv7l-3.8/cryptography
creating 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/general_name.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/__init__.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/ocsp.py -> build/lib.linux-armv7l-3.8/cryptography/x509
copying src/cryptography/x509/extensions.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
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/primitives
copying src/cryptography/hazmat/primitives/_cipheralgorithm.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/padding.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/__init__.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/hmac.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/constant_time.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/_asymmetric.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/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/x25519.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/decode_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/poly1305.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/cmac.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/ed25519.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/dsa.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/hmac.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/dh.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/utils.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/encode_asn1.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
creating 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/pkcs7.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
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/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/rsa.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/x448.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/__init__.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/dsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/types.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/dh.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
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/__init__.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
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/base.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/__init__.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
creating 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/scrypt.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/x963kdf.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/concatkdf.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
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/__init__.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
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
creating build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/__init__.pyi -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/asn1.pyi -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/ocsp.pyi -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/_rust
copying src/cryptography/hazmat/bindings/_rust/x509.pyi -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/_rust
running build_ext
running build_rust
Updating crates.io index
=============================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.8.5
platform: Linux-5.10.63-v7+-armv7l-with-glibc2.28
pip: n/a
setuptools: 59.6.0
setuptools_rust: 1.1.2
=============================DEBUG ASSISTANCE=========================
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/srv/homeassistant/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/srv/homeassistant/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 261, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 230, in build_wheel
return self._build_with_temp_dir(['bdist_wheel'], '.whl',
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 215, in _build_with_temp_dir
self.run_setup()
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 158, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 39, in <module>
setup(
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
File "/usr/local/lib/python3.8/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/lib/python3.8/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 299, in run
self.run_command('build')
File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.8/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools_rust/setuptools_ext.py", line 132, in run
build_rust.run()
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools_rust/command.py", line 101, in run
self.run_for_extension(ext)
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools_rust/build.py", line 108, in run_for_extension
dylib_paths = self.build_extension(ext, self.target)
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools_rust/build.py", line 139, in build_extension
target_dir = _base_cargo_target_dir(ext)
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools_rust/build.py", line 673, in _base_cargo_target_dir
target_directory = ext._metadata()["target_directory"]
File "/tmp/pip-build-env-wtu1ut7k/overlay/lib/python3.8/site-packages/setuptools_rust/extension.py", line 200, in _metadata
self._cargo_metadata = json.loads(subprocess.check_output(metadata_command))
File "/usr/local/lib/python3.8/subprocess.py", line 411, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/local/lib/python3.8/subprocess.py", line 512, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['cargo', 'metadata', '--manifest-path', 'src/rust/Cargo.toml', '--format-version', '1']' died with <Signals.SIGSEGV: 11>.
----------------------------------------
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
The export trick doesn’t work anymore in 2021.12, due to “cryptography” being bumped to 3.5.
That did the trick for me, i.e. installing a newer rust/cargo from origin.
Excellent, that worked. To clarify, these are the commands I ran:
sudo apt remove rustc
sudo curl https://sh.rustup.rs -sSf | sh
Thanks so much!
Hi,
for armv7 during the cargo and rustc installation
curl https://sh.rustup.rs -sSf | sh
please first select option 2 and chage it to “armv7-unknown-linux-gnueabihf”, rest just enter defaults and then select option 1 and install. After that type:
source $HOME/.cargo/env
To double check if it is ok, just type
rustc – version
to see if it is OK.
Then run again installation of HA and the Cryptography should be properly built.
Good luck
P.S. be sure to unistall previous version via:
sudo apt remove rustc cargo
If you need to unistall previous cargo and rustc, use:
rustup self uninstall
Hi,
I found a workaround on one the debian bug reports. I seams to be a second bug with rust and git. If I set the following variables I was able to install the required cryptography 35.0.0 package:
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
export CARGO_NET_GIT_FETCH_WITH_CLI=true
Christopher
Hi, should I update Rust in pip env or in my main account? I updated as a root user but in pip env HA says me: error: can’t find Rust compiler
EDIT
Helped me adding
export PATH=$PATH:~/.cargo/bin
after instalation of Rush from
curl [https://sh.rustup.rs](https://sh.rustup.rs/) -sSf | sh
This did it for me! Running
rustup self uninstall
first was important.
I’m on a raspberry pi. To make sure I was on an ARMv7 processor architecture I ran:
cat /proc/cpuinfo
yet another similar, but slightly different issue:
cryptography==35
on a Pi 3b, with Rust installed via rustup
, the command rustc -vV
states that my platform is armv7-unknown-linux-gnueabihf
– however, cryptography wants to use arm-unknown-linux-gnueabihf
, which must be installed separately.
I used:
rustup target add arm-unknown-linux-gnueabihf
export PYO3_CROSS_PYTHON_VERSION=3.8
…this finally worked.
Hi, new version HA and still the same:
error: can’t find Rust compiler
I’ve instaled from curl https://sh.rustup.rs -sSf | sh
, set source $HOME/.cargo/env
and nothing change. Why with each a new version of HA is the same problem?
same here! everyone has a hint how to do but what is the official straightforward way to upgrade to 2022.11.xx?
solution can’t be so tricky
same here! 2022.11.2
On RPi 4 (Raspbian GNU/Linux 11 (bullseye)) :
sudo apt install rustc
And then
pip install --upgrade pip (if not already done)
pip install --upgrade homeassistant
It worked for me (be careful, it’s very long…)
is this done with the pi login or where?
this does not work On RPi 4 (Raspbian GNU/Linux 11 (bullseye)) :
sudo apt install rustc
And then
pip install --upgrade pip (if not already done)
pip install --upgrade homeassistant
It worked for me (be careful, it’s very long…)
I try to give step by step instructions never could figure out why people have to be so cryptic on the steps they used to make something work
if this works you can sudo apt install rustc as any user, but the pip stuff you have to do inside your home assistant virtual environment if you are a core guy