1、python源码地址:https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
2、准备编译环境
yum update -y
yum -y groupinstall "Development tools"
yum -y install bzip2-devel openssl-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
python3运行时遇到“No module named _ssl”问题,查阅知python3需要的openssl版本最低为1.0.2,但是centos 默认的为1.0.1,需要手动编译高版本openssl,这里选用openssl-1.1.1
# 下载
curl -O https://www.openssl.org/source/openssl-1.1.1u.tar.gz
# 解压缩
tar -zxvf openssl-1.1.1u.tar.gz
#初始化编译环境
cd openssl-1.1.1u
mkdir /usr/local/openssl
./config --prefix=/usr/local/openssl shared zlib
#编译
make && make install
# 更新环境变量,需要在用的python的用户下使用,没做的话引用不到新安装的openssl
# LD_LIBRARY_PATH环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile
更新SQLite,原来centos7的版本在新版ha中不受支持即“ Version 3.7.17 of SQLite is not supported”, 更新SQLite,从官网下载:SQLite Download Page
# 下载
curl -O https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz
# 解压
tar zxvf sqlite-autoconf-3420000.tar.gz
# 配置编译
cd sqlite-autoconf-3420000/
./configure --prefix=/usr/local
make && make install
# 把系统预装的旧版sqlite3移走:
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
# 为新版的sqlite3建立软链接:
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
# 配置运行环境库
echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
ldconfig
上传文件到系统后解压,或者系统内直接下载:
curl -O https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
tar -xzf Python-3.11.4.tgz
创建Python-3.11.4的安装目录,注意不要安装在/root下,避免其他用户访问不到:
mkdir /usr/local/python3/
3、开始编译安装。
进入Python-3.11.4目录下生成安装配置文件:
./configure --prefix=/usr/local/python3
# 添加ssl依赖 √
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
#--enable-optimizations 会报错
./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/lib/ssl
然后执行编译和安装:
make && make install
4、创建系统软连接
ln -s /usr/local/python3/bin/python3.11 /usr/bin/python3.11
ln -s /usr/local/python3/bin/pip3.11 /usr/bin/pip3.11
5、【选做】更换pip源, pip时经常会出现下载很慢,需要更换国内源
修改~/.pip/pip.conf配置文件,没有可以创建一个,可选源如下
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 腾讯源
pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple
# 豆瓣源
pip config set global.index-url http://pypi.douban.com/simple/
# 换回默认源pip config unset global.index-url
文件“~/.pip/pip.conf”内容
[global]
index-url=http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com
[global]
index-url=http://mirrors.cloud.tencent.com/pypi/simple
[install]
trusted-host=mirrors.cloud.tencent.com
6、python安装后校验,在安装 Home Assistant的用户下检验,有问题就在用户下配置ssl和sqlit的环境变量
# 启动python环境
python3.11
# 在python环境下依次输入,检验ssl及sqlit3版本
>>> import ssl
>>> import _ssl
>>> import sqlite3
>>> print(sqlite3.sqlite_version)
3.42.0
1、准备环境,安装Home Assistant必要的依赖库
yum -y install openjpeg2-devel
yum -y install libtiff-devel
2、创建venv环境,在虚拟环境容器中安装Home Assistant
# 先升级pip到最新版
python3.11 -m pip install --upgrade pip
# 在用户目录创建venv环境
cd ~
python3.11 -m venv homeassistant
# 接下来激活容器,使该venv的环境作为我们当前的Python主环境。
# 注意这里我们不再使用python3.11而使用python3
cd homeassistant
source bin/activate
#安装Python库 wheel轮子,作用提高安装速度,稳定
python3 -m pip install wheel
3、用pip进行 安装Home Assistant,在容器中主要使用的是pip3
cd ~/homeassistant
pip3 install homeassistant
直接执行hass命令,如果想在后台运行,请加上--daemon,启动会等待很久:
# 启动,需要在venv环境下启动,首次启动建议在前台启动,第一次启动会自动下载一些python依赖库和进行一些配置,需要较长时间
$ hass
# 后台运行
$ hass --daemon
5、开放防火墙端口8123(ha控制台),4357(ha状态监控)
# 开放端口
firewall-cmd --permanent --add-port=8123/tcp --add-port=4357/tcp
# 重启防火墙
firewall-cmd --reload
# 查看端口列表
firewall-cmd --permanent --list-ports
6、访问系统,ip:8123即可进入系统,python安装的缺少官方的Add-on,没有Supervisor,虚拟机推荐用官方的的虚拟机镜像启动,功能齐全Linux - Home Assistant (home-assistant.io)