arrayfire / arrayfire-python

Python bindings for ArrayFire: A general purpose GPU library.

Home Page:https://arrayfire.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RuntimeError: Could not load any ArrayFire libraries.

BenBagherian opened this issue · comments

Error right after installation:

>>> import arrayfire
Traceback (most recent call last):

    File "<stdin>", line 1, in <module>
    File "C:\Program Files (x86)\Python36-32\lib\site-packages\arrayfire\__init__. py", line 56, in <module>
    from .library    import *
    File "C:\Program Files (x86)\Python36-32\lib\site-packages\arrayfire\library.py", line 619, in <module>backend = _clibrary()

    File "C:\Program Files (x86)\Python36-32\lib\site-packages\arrayfire\library.py", line 595, in __init__
    raise RuntimeError("Could not load any ArrayFire libraries.\n" + more_info_str)

RuntimeError: Could not load any ArrayFire libraries.
Please look at https://github.com/arrayfire/arrayfire-python/wiki for more infor
mation.

And these are in the PATH:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin;C:\Program Files\ArrayFire\v3\lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\nvvm\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\nvvm\lib\x64

Also, Cuda works fine with exe benchmarks.

Any thought?

Can you make sure the sys.path variable contains the path to the ArrayFire libs?

python -c "import sys; print('\n'.join(sys.path))"

no, it's not:

>python -c "import sys; print('\n'.join(sys.path))

C:\Program Files (x86)\Python36-32\python36.zip
C:\Program Files (x86)\Python36-32\DLLs
C:\Program Files (x86)\Python36-32\lib
C:\Program Files (x86)\Python36-32
C:\Users\h118341\AppData\Roaming\Python\Python36\site-packages
C:\Program Files (x86)\Python36-32\lib\site-packages
C:\Program Files (x86)\Python36-32\lib\site-packages\win32
C:\Program Files (x86)\Python36-32\lib\site-packages\win32\lib
C:\Program Files (x86)\Python36-32\lib\site-packages\Pythonwin

Then I tried to append it to the sys.path, didn't work:

>>> import sys
>>> sys.path
['', 'C:\\Program Files (x86)\\Python36-32\\python36.zip', 'C:\\Program Files (x86)\\Python36-32\\DLLs', 'C:\\Program Files (x86)\\Python36-32\\lib', 'C:\\Program Files (x86)\\Python36-32', 'C:\\Users\\h118341\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages\\win32', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages\\win32\\lib', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages\\Pythonwin']
>>> sys.path.append('C:\\Program Files\\ArrayFire\\v3\\lib')
>>> sys.path
['', 'C:\\Program Files (x86)\\Python36-32\\python36.zip', 'C:\\Program Files (x86)\\Python36-32\\DLLs', 'C:\\Program Files (x86)\\Python36-32\\lib', 'C:\\Program Files (x86)\\Python36-32', 'C:\\Users\\h118341\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages\\win32', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages\\win32\\lib', 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages\\Pythonwin', 'C:\\Program Files\\ArrayFire\\v3\\lib']
>>> import arrayfire
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\arrayfire\__init__.py", line 56, in <module>
    from .library    import *
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\arrayfire\library.py", line 619, in <module>
    backend = _clibrary()
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\arrayfire\library.py", line 595, in __init__
    raise RuntimeError("Could not load any ArrayFire libraries.\n" + more_info_str)
RuntimeError: Could not load any ArrayFire libraries.
Please look at https://github.com/arrayfire/arrayfire-python/wiki for more information.
>>>

@BenBagherian think you are using 32 bit python. ArrayFire only supports 64 bit.

@umar456 sys.path refers to path of python modules. The right flag is os.environ['PATH']. But sys.path helpe debug the issue :)

Thank you both! Python-32bit was the issue!