numpy模块无'int'属性报错求助:新环境代码运行失败
解决numpy 'int'属性不存在的错误
错误原因
numpy 1.24及以后版本移除了np.int、np.float这类模糊的类型别名(不符合PEP规范),你的原环境numpy版本较低,仍保留这些别名所以能正常运行;新环境安装的是高版本numpy,因此触发该错误,重装无效是因为重装后依然是新版本。
修复方案
直接修改代码中的类型声明,二选一即可:
- 改用Python原生
int类型(推荐,更符合规范):
def SECOND_ORDER_LOG (self,img): original = np.zeros((5,5),dtype=int) original[2,2] = 1 kernel = np.array([[ 0, 0, -1, 0, 0], [ 0, -1, -2, -1, 0], [-1, -2, 16, -2, -1], [ 0, -1, -2, -1, 0], [ 0, 0, -1, 0, 0]]) result = original + 1 * kernel sharpened = cv2.filter2D(img, -1, result) return sharpened
- 或者使用numpy明确的整数类型(如
np.int_,对应平台默认整数类型):
def SECOND_ORDER_LOG (self,img): original = np.zeros((5,5),dtype=np.int_) original[2,2] = 1 kernel = np.array([[ 0, 0, -1, 0, 0], [ 0, -1, -2, -1, 0], [-1, -2, 16, -2, -1], [ 0, -1, -2, -1, 0], [ 0, 0, -1, 0, 0]]) result = original + 1 * kernel sharpened = cv2.filter2D(img, -1, result) return sharpened
内容的提问来源于stack exchange,提问作者brian2lee
相关产品推荐
相关产品推荐

