提问者:小点点

模块'numba。findlib'没有属性“get_lib_dir”


我试图学习如何使用pyculib并获得了属性错误:模块'numba.findlib'没有属性'get_lib_dir'

4核CPU(英特尔)GeForce GTX 745

文件“”,第1行,在runfile('C:/Python/Scripts/LearnCUDA/curand.py',wdir='C:/Python/Scripts/LearnCUDA'中)

文件“C:\Users\Administrator\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第786行,在runfile execfile(文件名,命名空间)中

文件"C:\用户\管理员\Anaconda3\lib\site-包\spyder_kernels\定制\spydercustomize.py",第110行,在执行文件exec(编译(f.read(),文件名,'exec'),命名空间)

文件"C:/Python/脚本/LearnCUDA/curand.py",第11行,从pyculib导入rand作为curand

文件"C:\用户\管理员\Anaconda3\lib\site-包\pyculib__init__. py",第49行,在from。导入blas,稀疏, fft, rand,排序

文件“C:\Users\Administrator\Anaconda3\lib\site packages\pyculib\sorting\u_init\u_.py”,第1行,在from中。radixsort导入radixsort

文件"C:\用户\管理员\Anaconda3\lib\site-包\pyculib\排序\radixsort.py",第38行,在lib=load_lib('径向排序')

文件“C:\Users\Administrator\Anaconda3\lib\site packages\pyculib\sorting\common.py”,第24行,在load_lib libpath=os中。路径join(findlib.get_lib_dir(),全名)

属性错误:模块“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])

共2个答案

匿名用户

导航到C:\Users\Administrator\Anaconda3\lib\site packages\pyculib\sorting\,并备份公共文件。皮耶。替换通用代码。玩弄

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)

如果这个剂量解决了问题,恢复到你的备份

匿名用户

以下步骤为我解决了问题:

  1. 下载Anaconda3-5.1。0
  2. 使用conda Install numpy=1.13安装numpy。0
  3. 使用conda安装cudatoolkit=7.5安装cudatoolkit 7.5
  4. 安装pyculib
    如果它能工作,那么一切都正常,如果在GTX 1060上使用Anaconda Accelerate时出现错误,如CURAND\u STATUS\u LAUNCH\u FAILURE,则可以:
  5. 使用conda安装-c numba cudatoolkit=8.0安装cudatoolkit=8.0