CentOS 7.9 环境下安装 Python 3.11 及部署 Open-WebUI
系统环境
操作系统
- CentOS 7.9
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /proc/version
Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
部署过程
配置 YUM 源
首先,配置阿里云的 YUM 源以加速软件包下载。
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
安装开发工具
安装 Development Tools
软件包组,该组包含编译和调试软件所需的核心工具。
yum groupinstall "Development Tools" -y
安装 EPEL 和其他依赖
安装 epel-release
,以便访问额外的软件包仓库。
yum install -y epel-release
安装其他依赖包,这些包是编译 Python 3.11 和其他依赖软件所必需的。
yum install -y nodejs git
yum -y install make gcc epel-release zlib-devel bzip2-devel ncurses-devel gdbm-devel perl-IPC-Cmd readline-devel sqlite-devel libffi-devel tk-devel xz-devel
安装 OpenSSL 1.1.1
Python 3.11 需要 OpenSSL 1.1.1 或更高版本。
cd /tmp
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl
make && make install
备份旧的 OpenSSL
mv /usr/bin/openssl /usr/bin/openssl.back
mv /usr/include/openssl/ /usr/include/openssl.back
配置新的 OpenSSL
ln -s /usr/local/openssl/include/openssl/ /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
更新系统配置
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v
验证 OpenSSL 版本
openssl version
升级 SQLite
下载并编译安装最新版本的 SQLite。
wget https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz
tar xvfz sqlite-autoconf-3450100.tar.gz
cd sqlite-autoconf-3450100
./configure
make
sudo make install
备份旧的 SQLite
mv /usr/bin/sqlite3 /usr/bin/sqlite3_3.7.17
创建符号链接
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
配置 Python 动态库路径
find / -name "libpython3.11.so.1.0"
echo "/opt/soft/python/lib/" | sudo tee /etc/ld.so.conf.d/python3.11.conf
ldconfig
安装 Python 3.11
手动下载并编译安装 Python 3.11。
# 由于yum里没有python3.11的安装包,需要手动下载
wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
#解压
tar -xzvf Python-3.11.3.tgz
#编译
cd Python-3.11.3
./configure --prefix=/opt/soft/python --with-openssl=/usr/local/openssl --enable-shared
make && make install
# 配置变量环境
vi /etc/profile
export_PATH=/opt/soft/python/bin/:$PATH
LD_LIBRARY_PATH=/opt/soft/python/lib/:$LD_LIBRARY_PATH
source /etc/profile
# 创建软连接
ln -s /opt/soft/python/bin/python3.11 /usr/bin/python3
ln -s /opt/soft/python/bin/pip3.11 /usr/bin/pip3
# 查看python版本
/opt/soft/python/bin/python3.11 -V
配置 pip 源并安装 Open-WebUI
更换 pip 源为阿里官方源,并安装 Open-WebUI
# 更换为阿里官方源
pip3 config set install.trusted-host mirrors.aliyun.com
# 查看设置的pip官方源
cat /root/.config/pip/pip.conf
pip3 install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple open-webui
pip3 install open-webui
find / -name open-webui
vim open-webui
# 加入
__import__('pysqlite3')
import sys
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
# 创建链接
ln -s /usr/local/python3/bin/open-webui /usr/bin/open-webui
# 启动open-webui
open-webui serve
FAQ
版本报错
libraries: libpython3.11.so.1.0: cannot open shared object file: No such file or directory` 错误,可以按照以下步骤解决:
-
**确认动态库:
find /opt/soft/python -name "libpython3.11.so*"
如果未找到,需要重新编译 Python。
-
配置动态库路径:
echo "/opt/soft/python/lib" | sudo tee /etc/ld.so.conf.d/python3.11.conf sudo ldconfig
-
验证配置:
ldconfig -v | grep libpython3.11
-
验证修复:
python3.11 --version ldd /opt/soft/python/bin/python3.11 | grep libpython3.11
注意事项
- 编译 Python 时必须包含
--enable-shared
选项,否则不会生成动态库。 - 如果之前未启用
--enable-shared
,需要彻底清理后重新编译。
评论一下吧
取消回复eotfmfekyu
发表于:2 天前dlwnqtwvuqjjkujpwetgsugjgkompm