python - 如何在 Pycharm 中导入 Pyculib?
问题描述
我想pyculib.fft
在 pycharm 项目中使用,确切地说是在numba.njit
装饰函数中。有人Stackoverflow
建议我使用它,因为我需要找到一种fft
在numba.njit
装饰函数中使用函数的方法。但我不能pyculib
去上班。我尝试过使用Python 3.7
口译员和Anaconda
口译员。在这两种情况下pyculib 1.0.1
都安装了,这是 pycharm 中唯一可用的版本。
带Python
口译员:
import pyculib
输出:
C:\Users\Artur\Desktop\RL_framework\venv\Scripts\python.exe C:/Users/Artur/Desktop/RL_framework/help_functions/test3.py
Traceback (most recent call last):
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\utils\libutils.py", line 17, in __new__
dll = open_cudalib(cls.lib)
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\numba\cuda\cudadrv\libs.py", line 55, in open_cudalib
path = get_cudalib(lib)
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\numba\cuda\cudadrv\libs.py", line 48, in get_cudalib
libdir = get_cuda_paths()['cudalib_dir'].info
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\numba\cuda\cuda_paths.py", line 164, in get_cuda_paths
'nvvm': _get_nvvm_path(),
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\numba\cuda\cuda_paths.py", line 142, in _get_nvvm_path
candidates = find_lib('nvvm', path)
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\numba\misc\findlib.py", line 34, in find_lib
return find_file(regex, libdir)
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\numba\misc\findlib.py", line 46, in find_file
entries = os.listdir(ldir)
FileNotFoundError: [WinError 3] Das System kann den angegebenen Pfad nicht finden: 'C:\\Users\\Artur\\Desktop\\RL_framework\\venv\\DLLs'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Artur/Desktop/RL_framework/help_functions/test3.py", line 1, in <module>
import pyculib
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\__init__.py", line 49, in <module>
from . import blas, sparse, fft, rand, sorting
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\sparse\__init__.py", line 2, in <module>
from .api import *
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\sparse\api.py", line 6, in <module>
from .binding import (cuSparse, CUSPARSE_INDEX_BASE_ZERO,
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\sparse\binding.py", line 1307, in <module>
cuSparse = _init_cuSparse()
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\sparse\binding.py", line 1292, in _init_cuSparse
name, func = _init_api_function(k, v)
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\sparse\binding.py", line 1237, in _init_api_function
lib = libcusparse()
File "C:\Users\Artur\Desktop\RL_framework\venv\lib\site-packages\pyculib\utils\libutils.py", line 20, in __new__
e))
Exception: Cannot open library for cusparse:
[WinError 3] Das System kann den angegebenen Pfad nicht finden: 'C:\\Users\\Artur\\Desktop\\RL_framework\\venv\\DLLs'
Process finished with exit code 1
Das System kann den angegebenen Pfad nicht finden
方法system can not find stated path
带Anaconda
口译员:
import pyculib
输出:
C:\Users\Artur\Anaconda\python.exe C:/Users/Artur/Desktop/RL_framework/help_functions/test3.py
Traceback (most recent call last):
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\utils\libutils.py", line 17, in __new__
dll = open_cudalib(cls.lib)
File "C:\Users\Artur\Anaconda\lib\site-packages\numba\cuda\cudadrv\libs.py", line 56, in open_cudalib
return ctypes.CDLL(path)
File "C:\Users\Artur\Anaconda\lib\ctypes\__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] Das angegebene Modul wurde nicht gefunden
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Artur/Desktop/RL_framework/help_functions/test3.py", line 1, in <module>
import pyculib
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\__init__.py", line 49, in <module>
from . import blas, sparse, fft, rand, sorting
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\sparse\__init__.py", line 2, in <module>
from .api import *
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\sparse\api.py", line 6, in <module>
from .binding import (cuSparse, CUSPARSE_INDEX_BASE_ZERO,
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\sparse\binding.py", line 1307, in <module>
cuSparse = _init_cuSparse()
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\sparse\binding.py", line 1292, in _init_cuSparse
name, func = _init_api_function(k, v)
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\sparse\binding.py", line 1237, in _init_api_function
lib = libcusparse()
File "C:\Users\Artur\Anaconda\lib\site-packages\pyculib\utils\libutils.py", line 20, in __new__
e))
Exception: Cannot open library for cusparse:
[WinError 126] Das angegebene Modul wurde nicht gefunden
Process finished with exit code 1
Das angegebene Modul wurde nicht gefunden
方法the stated module can not be found
感谢您的时间。
编辑:
按照@norok2 的建议,我尝试import pyculib
在带有anaconda3
解释器的Linux 服务器上运行。它已安装numba
并cudatoolkit
安装了 3 个兼容的 GPU(2 xQuadro P2000
和 1 x RTX 2080
)。
运行导入命令会引发此错误:
/home/amu/anaconda3/bin/python /home/amu/Desktop/RL_framework/help_functions/test.py
Traceback (most recent call last):
File "/home/amu/Desktop/RL_framework/help_functions/test.py", line 1, in <module>
import pyculib
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/__init__.py", line 49, in <module>
from . import blas, sparse, fft, rand, sorting
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sparse/__init__.py", line 2, in <module>
from .api import *
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sparse/api.py", line 6, in <module>
from .binding import (cuSparse, CUSPARSE_INDEX_BASE_ZERO,
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sparse/binding.py", line 1307, in <module>
cuSparse = _init_cuSparse()
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sparse/binding.py", line 1292, in _init_cuSparse
name, func = _init_api_function(k, v)
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sparse/binding.py", line 1237, in _init_api_function
lib = libcusparse()
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/utils/libutils.py", line 25, in __new__
inst._initialize()
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/utils/libutils.py", line 34, in _initialize
fn = getattr(self.dll, name)
File "/home/amu/anaconda3/lib/python3.7/ctypes/__init__.py", line 369, in __getattr__
func = self.__getitem__(name)
File "/home/amu/anaconda3/lib/python3.7/ctypes/__init__.py", line 374, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /home/amu/anaconda3/lib/libcusparse.so.10.3.1.89: undefined symbol: cusparseCaxpyi_v2
Process finished with exit code 1
编辑_2:
降级cudatoolkit
到版本10.1.168
及以下会产生以下错误。pyculib
仅1.0.1
在 pycharm 版本中可用:
/home/amu/anaconda3/bin/python /home/amu/Desktop/RL_framework/help_functions/test.py
Traceback (most recent call last):
File "/home/amu/Desktop/RL_framework/help_functions/test.py", line 1, in <module>
import pyculib
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/__init__.py", line 49, in <module>
from . import blas, sparse, fft, rand, sorting
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sorting/__init__.py", line 1, in <module>
from .radixsort import RadixSort
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sorting/radixsort.py", line 30, in <module>
from .common import load_lib
File "/home/amu/anaconda3/lib/python3.7/site-packages/pyculib/sorting/common.py", line 2, in <module>
from numba import findlib
ImportError: cannot import name 'findlib' from 'numba' (/home/amu/anaconda3/lib/python3.7/site-packages/numba/__init__.py)
Process finished with exit code 1
解决方案
推荐阅读
- php - 现场数据库中的回显表保持空白
- woocommerce - 我的网站主页卡在 woocommerce 商店
- javascript - Background.js 到 content.js 使用端口和长寿命消息传递
- c - 获取退出值:-1,073,741,571 用简单的代码计算第 n 时刻
- r - 如何显示与使用的变量不同的另一个标签
- c++ - 如何为此代码创建朋友功能?
- javascript - $geoNear 仅作为管道中的第一阶段有效
- typescript - 打字稿:声明合并将变量声明为接口
- amazon-web-services - AWS Codepipeline:部署失败。提供的角色没有足够的权限:无法部署应用程序
- python - 数据框中字段的自定义聚合