环境: 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
查看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 --prefix=/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# 创建链接
ln -s /usr/local/soft/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/soft/python3/bin/pip3 /usr/bin/pip3