centos7安装安装python3.11,安装Home Assistant

2023-09-13 09:39:22

一,下载并编译安装python3.11

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

二、安装 Home Assistant

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

​ ​4、启动Home Assistant  

直接执行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)

​ 

更多推荐

关于安卓SVGA浅尝(一)svgaplayer库的使用

关于安卓SVGA浅尝(一)使用相关链接SVGA官网SVGA-github说明文档背景项目开发,都会和动画打交道,动画的方案选取,就有很多选择。如Json动画,svga动画,gif等等。各有各的优势。目前项目中用到了svga的动画,因此,就有了这一系列的文章。使用(1)引入首先,引入的方式,大致有两种:一种是直接使用远程

玩玩“小藤”开发者套件 Atlas 200I DK A2 之部署智能语音助手

玩玩“小藤”开发者套件Atlas200IDKA2之部署智能语音助手0.背景1.安装flac2.创建自签名证书3.创建虚拟环境4.安装PyTorch5.安装PyTorch插件torch_npu6.安装APEX混合精度模块7.安装依赖库8.使用gradio启动智能语音助手9.访问智能语音助手0.背景总所周知,英伟达的GPU

c++编译过程-各阶段任务

首先,g++在编译源代码时,会经历下面几个阶段-E首先进行预处理,还是源代码格式.i-S编译器生成汇编语言.s-c汇编器生成二进制文件.o-链接库文件,其他代码.out一.预处理预处理主要是1.将#宏定义进行展开,2.将头文件内容替换3.去掉注释二.编译编译主要是将预处理后的代码转换成汇编语言:1.对代码进行语法分析,

AndroidUtil - 强大易用的安卓工具类库

官网https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md项目介绍AndroidUtilCode🔥是一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具有完善的Demo和单元测试,利用其封装好的APIs可以大大提高开发效率,如

解锁黑科技!群晖管家+cpolar内网穿透,让你的本地黑群晖实现公网远程访问!

白嫖怪狂喜!黑群晖也能使用群晖管家啦!文章目录白嫖怪狂喜!黑群晖也能使用群晖管家啦!1.使用环境要求:2.下载安装群晖管家app3.随机地址登陆群晖管家app4.固定地址登陆群晖管家app自己组装nas的白嫖怪们虽然也可以通过在局域网使用黑群晖,但是群晖quickconnect需要绑定正版群晖账号,那么白嫖怪们要怎样在

【自动化测试】如何下载安装webdriver

1.下载合适的浏览器驱动2.配置环境变量写自动化脚本的时候经常会用到selenium,selenium来自webdriver模块,所以需要安装对应的webdriver驱动。1.查看自己浏览器的版本;发现我的浏览器版本已经升到了最新的版本,我参照这个链接,下载了最新版本的驱动,https://googlechromela

基于JAVA+SpringBoot+Vue+协同过滤算法+爬虫的前后端分离的租房系统

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取项目下载方式🍅一、项目背景介绍:随着城市化进程的加快,租房需求逐渐增多,传统的租房方式已经无法满足人们的需求。为了提

Linux下的系统编程——信号(十一)

前言:信号在我们的生活中随处可见,如:古代战争中摔杯为号;现代战争中的信号弹;体育比赛中使用的信号枪......他们都有共性,信号是信息的载体,Linux/UNIX环境下,古老、经典的通信方式,现下依然是主要的通信手段。Unix早期版本就提供了信号机制,但不可靠,信号可能丢失。Berkeley和AT&T都对信号模型做了

如何在前端传递一个String 的变量和一个obj对象到后端,然后被Java后端接收

首先我们通过post向后端发送请求,本篇博客仅纪录一下,在实际开发中需要从前端传递多值到后端,并且不存放到一个对象中进行传值处理,简单的一个案例展示该怎么做罢了!!!//创建一个包含字符串和对象的数据constpostData={stringValue:"Hello,World!",//你要发送的字符串数据yourOb

华为云Stack的学习(七)

八、华为云Stack存储服务介绍1.云硬盘EVS云硬盘(ElasticVolumeService,EVS),又名磁盘,是一种虚拟块存储服务,主要为ECS(ElasticCloudServer)和BMS(BareMetalServer)提供块存储空间。用户可以在线创建云硬盘并挂载给实例,云硬盘的使用方式与传统服务器硬盘完

浅谈电力电容器技术的发展及选型

安科瑞华楠摘要:介绍了我国电力电容器产品制造技术的发展现状。在与国外电力电容器产品先进水平对比的基础上,讨论了我国电力电容器产品的差距和某些对策,并对我国电力电容器技术发展趋势提出了一些看法。关键词:电力电容器;制造技术;技术发展0引言电力电容器是一种重要的基础工业产品,他是电力系统并联无功补偿、串联补偿、谐波滤波装置

热文推荐