Numpy升级至1.25.0后调用np.loadtxt出现AttributeError报错求助
解决Numpy 1.25.0中
np.loadtxt报AttributeError: module 'numpy.lib' has no attribute '_datasource'的问题 这个错误是因为Numpy 1.25.0移除了numpy.lib._datasource这个内部私有API,而np.loadtxt的部分调用路径依赖该模块,导致兼容性问题。以下是几个可行的解决办法:
1. 降级Numpy到兼容版本
直接回到之前运行正常的Numpy 1.24.3,这是最快速的解决方案:
# 使用pip降级 pip install numpy==1.24.3 --force-reinstall # 如果用conda环境 conda install numpy=1.24.3 --force-reinstall
2. 替换np.loadtxt为其他读取方式
如果不想降级Numpy,可以用Python内置文件操作或者pandas替代np.loadtxt:
方法一:Python内置open函数读取
import numpy as np path = '/home/anto/Documents/Codes/public/outputs/fargo/' # 读取domain_x.dat并转换为numpy数组 with open(path + "domain_x.dat", 'r') as f: phi = np.array([float(line.strip()) for line in f if line.strip()])[:-1] # 读取domain_y.dat并转换为numpy数组 with open(path + "domain_y.dat", 'r') as f: r = np.array([float(line.strip()) for line in f if line.strip()])[3:-4]
方法二:使用pandas读取(需安装pandas)
import numpy as np import pandas as pd path = '/home/anto/Documents/Codes/public/outputs/fargo/' phi = pd.read_csv(path + "domain_x.dat", header=None).values.flatten()[:-1] r = pd.read_csv(path + "domain_y.dat", header=None).values.flatten()[3:-4]
3. 更新所有依赖库尝试兼容
尝试更新所有相关科学计算库,确保它们适配Numpy 1.25.0:
pip install --upgrade numpy matplotlib pandas
内容的提问来源于stack exchange,提问作者Antonia Morales
相关产品推荐
相关产品推荐

