Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模块';numba.findlib';没有属性';get_lib_dir';_Python_Anaconda_Numba - Fatal编程技术网

Python 模块';numba.findlib';没有属性';get_lib_dir';

Python 模块';numba.findlib';没有属性';get_lib_dir';,python,anaconda,numba,Python,Anaconda,Numba,我正在尝试学习如何使用pyculib和get AttributeError:模块'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\s

我正在尝试学习如何使用pyculib和get AttributeError:模块'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:\Users\Administrator\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第110行,在execfile中 exec(编译(f.read(),文件名,'exec'),命名空间)

文件“C:/Python/Scripts/LearnCUDA/curand.py”,第11行,在 从pyculib进口兰特作为curand

文件“C:\Users\Administrator\Anaconda3\lib\site packages\pyculib\uuuuu init\uuuuuuu.py”,第49行,在 从…起导入blas、稀疏、fft、rand、排序

文件“C:\Users\Administrator\Anaconda3\lib\site packages\pyculib\sorting\u_init\u_.py”,第1行,在 从.radixsort导入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行,装入库 libpath=os.path.join(findlib.get_lib_dir(),全名)

AttributeError:模块'numba.findlib'没有属性'get\u lib\u 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)

如果此操作解决了问题,请恢复到备份,以下步骤为我解决了问题:

  • 下载anaconda 3-5.1.0
  • 使用
    conda Install numpy=1.13.0安装numpy
  • 使用
    conda安装cudatoolkit=7.5安装cudatoolkit 7.5
  • 安装pyculib。
    如果工作正常,那么一切都正常,如果在GTX 1060上使用Anaconda Accelerate时出现类似于
    CURAND\u STATUS\u LAUNCH\u FAILURE
    的错误 然后你可以:
  • 使用
    conda安装-c numba cudatoolkit=8.0安装cudatoolkit=8.0

  • 您的cudatoolkit和cudaNow版本是什么?我尝试重新安装它们并获得以下信息:对于cuda:PackagesNotFoundError:以下软件包当前频道不可用:cuda和cudatoolkit:#所有请求的软件包都已安装。在运行numba-s后,我得到::cudatoolkit 9.0 1和cudnn 7.3.1 cuda9.0\u 0tanks。我在我的系统中检查了common.py,它只在第一行与您的代码不同:从未来的导入print_函数、绝对导入、分区当我注释掉这一行时,我得到了相同的结果:模块'numba.findlib'没有属性'get_lib_dir',顺便说一句,当我将common.py作为findlib.py复制到Spyder中并运行时,它不会抱怨。但是,当我注释掉我得到的第一行时:[autoreload of pyculib.sorting.common失败:回溯(最近一次调用):文件“C:\Users\Administrator\Anaconda3\lib\site packages\IPython\extensions\autoreload.py”,第244行,在check superreload(m,reload,self.old\u objects)文件中“C:\Users\Administrator\Anaconda3\lib\site packages\IPython\extensions\autoreload.py”,第378行,超级重新加载模块=重新加载(模块)文件“C:\Users\Administrator\Anaconda3\lib\imp.py”,第315行,重新加载返回importlib.reload(模块)文件“C:\Users\Administrator\Anaconda3\lib\importlib\u init.py”“,第159行,在None ImportError中的reload name=parent\u name):parent'pyculib.sorting'不在sys.modules中]这是对我来说错误的行
    libpath=os.path.join(findlib.get\u lib\u dir()[0],fullname)
    findlib.get\u lig\u dir()
    不存在。但是
    findlib.get_lib_dirs()
    执行此操作,但它返回一个列表。
    [0]
    获取该列表中第一项的字符串。这是我唯一改变的事情。