安装chromadb遇到的问题与python3升级

环境: python 3.10 , centos 7.x

使用 pip3 install chromadb 时,遇到以下问题。

问题1: gcc

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for chroma-hnswlib
Failed to build chroma-hnswlib
ERROR: Could not build wheels for chroma-hnswlib, which is required to install pyproject.toml-based projects

该问题为gcc 版本较低引起。
通过:

gcc -v

查看系统gcc版本为

gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 

升级 gcc

# 1、 安装centos-release-scl
sudo yum install centos-release-scl
#2 、安装gcc
sudo yum install devtoolset-11-gcc*
# 也可以search 有哪些gcc版本。
# 3、激活
scl enable devtoolset-11 bash

# 也可以通过以下方式激活
source /opt/rh/devtoolset-11/enable

# 然后可以安装chromadb
pip3 install chromadb

安装chromadb遇到的问题与python3升级_第1张图片

查看gcc版本:

gcc version 11.2.1 20220127 (Red Hat 11.2.1-9) (GCC) 

注意: 以上只是激活本次会话的gcc11。重新开启终端连接服务器后,gcc还是之前的版本。
如果要永久激活gcc 11. 可以用gcc11 替换gcc4.8

#查看gcc位置:
ll /opt/rh/devtoolset-11/root/bin/gcc
ll /usr/bin/g++ 
# 备份原gcc
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv /usr/bin/g++ /usr/bin/g++-4.8.5
#链接到新版本:
ln -s /opt/rh/devtoolset-11/root/bin/gcc /usr/bin/gcc
ln -s /opt/rh/devtoolset-11/root/bin/g++ /usr/bin/g++

gcc --version
g++ --version

问题2: sqlite3

RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.

意思就是服务器的sqlite版本过低。
通过:

sqlite3 -version

查看系统sqlite版本。
在sqlite官网 https://www.sqlite.org/chronology.html ,下载3.35版本以上的sqlite源码。
解压源码文件。

./configure --prefix=/usr/local
make -j4
make install
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
echo"/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
# 或者 vim /etc/ld.so.conf.d/sqlite3.conf ,然后填写/usr/local/lib ,保存。
ldconfig

参考:
CentOS 7 升级 gcc 版本
https://blog.csdn.net/ll837448792/article/details/131415990
centos 7.9 下升级自带 sqlite3
https://www.cnblogs.com/leffss/p/11555556.html

附: python升级

1、升级 openssl

去官网下载安装包:https://www.openssl.org/source。
如:https://www.openssl.org/source/openssl-1.1.1w.tar.gz
解压后安装:

./config --perfix=/usr/local/openssl
make 
make install

替换旧版本

# 备份
mv /usr/bin/openssl /usr/bin/ openssl. old
mv /usr/lib64/ openssl /usr/lib64/ openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
# 创建链接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v  #显示正在扫描的目录及搜索到的动态链接库

查看系统的openssl版本:

openssl version

2、升级python版本

去python官网https://www.python.org/downloads/下载合适的python版本。

./configure --prefix=/usr/local/soft/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto 
make -j4
make install

你可能感兴趣的:(jvm)