旧版 Raspbian/Hassbian 的 piwheels 问题
如果你使用的是 Hass.io、Docker,或基于 Debian Buster 的发行版,那么本文不适用于你。
升级到 Home Assistant 0.96.0 后,一些用户开始看到如下错误:
所有通过 SSL(HTTPS)通信的集成都停止工作了。
如果你是手动安装或使用 Hassbian,并且属于以下系统之一,就会受到影响:
- Raspbian Jessie
- Raspbian Stretch
原因在于 piwheels 判断操作系统版本的方式:它会通过当前使用的 Python 版本来推断系统版本。
@frenck 在这个 issue 中写了问题分析和可行方案。
这个问题有两种可能的解决方案,其中方案 1 是更推荐的做法。
方案 1
将你的发行版升级到 Debian Buster。
注意:此方案会升级整个系统,_可能_会影响你正在运行的其他服务。
继续之前,请确保你已经有最新的系统备份。
步骤
- 将以下文件中的
stretch或jessie改为buster:/etc/apt/sources.list/etc/apt/sources.list.d/raspi.list/etc/apt/sources.list.d/hassbian.list
- Run
sudo apt-get update - Run
sudo apt-get -y dist-upgrade - Run
sudo reboot
方案 2
禁用 piwheels 的预编译包。
这个方案一开始更快,但缺点很明显:你必须在本地编译这些包。 只有当你的系统上还有其他服务,且使用方案 1 会导致它们无法工作时,才建议使用本方案。
步骤
-
编辑
/etc/pip.conf,将包含 piwheels 的那一行注释掉,如下: -
Run
source /srv/homeassistant/bin/activate -
Run
pip uninstall cryptography -
Run
pip install --no-cache cryptography==2.7 -
Run
deactivate

