我正在尝试学习如何使用pyculib并获得AttributeError:模块'numba.findlib'没有属性'get_lib_dir'
4核CPU(英特尔)+ GeForce GTX 745
文件“”,第1行,在runfile中('C:/Python/Scripts/LearnCUDA/curand.py',wdir ='C:/ Python / Scripts / LearnCUDA')
在runfile execfile(filename,namespace)中的文件“C:\ Users \ Administrator \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py”,第786行
文件“C:\ Users \ Administrator \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py”,第110行,在execfile exec中(编译(f.read(),filename,'exec'),命名空间)
文件“C:/Python/Scripts/LearnCUDA/curand.py”,第11行,从pyculib import rand中尽快
文件“C:\ Users \ Administrator \ Anaconda3 \ lib \ site-packages \ pyculib__init __。py”,第49行,来自。 import blas,sparse,fft,rand,sorting
文件“C:\ Users \ Administrator \ Anaconda3 \ lib \ site-packages \ pyculib \ sorting__init __。py”,第1行,来自.radixsort import RadixSort
文件“C:\ Users \ Administrator \ Anaconda3 \ lib \ site-packages \ pyculib \ sorting \ radixsort.py”,第38行,在lib = load_lib('radixsort')中
文件“C:\ Users \ Administrator \ Anaconda3 \ lib \ site-packages \ pyculib \ sorting \ common.py”,第24行,在load_lib中libpath = os.path.join(findlib.get_lib_dir(),fullname)
AttributeError:模块'numba.findlib'没有属性'get_lib_dir'
import numpy as np
from pyculib import rand as curand
prng = curand.PRNG(rndtype=curand.PRNG.XORWOW)
rand = np.empty(100000)
prng.uniform(rand)
print(rand[:10])
导航到C:\Users\Administrator\Anaconda3\lib\site-packages\pyculib\sorting\
并备份common.py。将common.py中的代码替换为
from numba import findlib
import ctypes
import os
import platform
import warnings
def library_extension():
p = platform.system()
if p == 'Linux':
return 'so'
if p == 'Windows':
return 'dll'
if p == 'Darwin':
return 'dylib'
def load_lib(libname):
fullname = 'pyculib_%s.%s' % (libname, library_extension())
devlib = os.path.join(os.path.abspath(os.path.dirname(__file__)), fullname)
if os.path.exists(devlib):
libpath = devlib
warnings.warn('Using in-tree library %s' % libpath)
else:
libpath = os.path.join(findlib.get_lib_dirs()[0], fullname)
return ctypes.CDLL(libpath)
如果这不能解决问题还原到您的备份
以下步骤为我解决了这个问题:
conda install numpy=1.13.0
安装numpyconda install cudatoolkit=7.5
安装cudatoolkit 7.5CURAND_STATUS_LAUNCH_FAILURE
的错误,你可以:conda install -c numba cudatoolkit=8.0
安装cudatoolkit = 8.0