модуль 'numba.findlib' не имеет атрибута 'get_lib_dir' - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь узнать, как использовать pyculib, и получил AttributeError: модуль 'numba.findlib' не имеет атрибута 'get_lib_dir'

4-ядерный процессор (Intel) + GeForce GTX 745

Файл "", строка 1, в runfile ('C: /Python/Scripts/LearnCUDA/curand.py', wdir = 'C: / Python / Scripts / LearnCUDA')

Файл "C: \ Users \ Администратор \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 786, в runfile execfile (имя файла, пространство имен)

Файл "C: \ Users \ Администратор \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 110, в execfile exec (compile (f.read (), filename, 'exec'), пространство имен)

Файл "C: /Python/Scripts/LearnCUDA/curand.py", строка 11, в от pyculib import rand as curand

Файл "C: \ Users \ Администратор \ Anaconda3 \ lib \ site-packages \ pyculib__init __. Py", строка 49, в от . импорт, ред, ффт, ранд, сортировка

Файл "C: \ Users \ Администратор \ Anaconda3 \ lib \ site-packages \ pyculib \ sorting__init __. Py", строка 1, в из .radixsort import RadixSort

Файл "C: \ Users \ Администратор \ Anaconda3 \ lib \ site-packages \ pyculib \ sorting \ radixsort.py", строка 38, в lib = load_lib ('radixsort')

Файл "C: \ Users \ Администратор \ Anaconda3 \ lib \ site-packages \ pyculib \ sorting \ common.py", строка 24, в load_lib libpath = os.path.join (findlib.get_lib_dir (), полное имя)

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])

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Следующие шаги решили проблему для меня:

  1. Скачать anaconda 3-5.1.0
  2. Установить numpy с помощью conda install numpy=1.13.0
  3. Установить cudatoolkit 7.5 с помощьюconda install cudatoolkit=7.5
  4. Установите pyculib.
    Если все работает, то все в порядке, если у вас есть ошибка, такая как CURAND_STATUS_LAUNCH_FAILURE при использовании Anaconda Accelerate на GTX 1060, вы можете:
  5. Установите cudatoolkit = 8.0, используя conda install -c numba cudatoolkit=8.0
0 голосов
/ 19 апреля 2019

Перейдите к 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)

Если это не помогло устранить проблему, вернитесь к резервной копии

...