RedHat 8.8下H5PY遇numpy.float128签名警告的非忽略式解决方法
解决RedHat 8.8中h5py+numpy的float128警告问题
以下是无需使用warnings.filterwarnings("ignore")的解决办法:
升级numpy到兼容版本
该警告在numpy 1.26及以上版本中已修复了部分平台相关的dtype签名匹配问题,执行以下命令升级:pip install --upgrade numpy>=1.26.0从源码编译适配系统的numpy
如果需要保留numpy 1.24.3版本,可针对RedHat 8.8的系统库重新编译numpy:- 卸载现有numpy:
pip uninstall numpy -y - 安装编译依赖:
sudo dnf install gcc gcc-c++ python3-devel openblas-devel -y - 从源码安装指定版本numpy:
pip install numpy==1.24.3 --no-binary numpy
- 卸载现有numpy:
替换代码中的float128为longdouble
在Linux系统中,numpy.longdouble是更适配底层系统的128位浮点类型,将代码中所有numpy.float128替换为numpy.longdouble,例如:# 原代码 arr = numpy.array([1.5], dtype=numpy.float128) # 修改后 arr = numpy.array([1.5], dtype=numpy.longdouble)重新安装匹配当前numpy的h5py
预编译的h5py包可能与系统中的numpy存在兼容性问题,重新安装h5py以适配当前环境:pip install --force-reinstall h5py==3.10.0
内容的提问来源于stack exchange,提问作者Ashish Shirodkar
相关产品推荐
相关产品推荐

