使用python模块numba时出错

时间:2013-08-24 00:20:05

标签: python numpy clang llvm numba

我已经安装了 LLVM 3.2 以及 numba 的所有依赖关系(Meta除外):

  • LLVM 3.1或3.2
  • llvmpy(来自llvmpy / llvmpy fork)
  • llvmmath
  • numpy(1.6或更高版本)
  • Meta(来自numba / Meta fork(可选))
  • Cython(仅限构建依赖项)
  • 鼻子(用于单元测试)
  • argparse(for pycc)

我按照本页https://github.com/llvmpy/llvmpy上的说明安装了LLVM 3.2和llvmpy。所有其他python模块都是使用 pip

安装的
sudo pip install --upgrade module_name

接下来,我尝试了此页面上的numba示例:http://jakevdp.github.io/blog/2012/08/24/numba-vs-cython/。我将pairwise_pythonpairwise_numba存储在名为performance.py的文件中。然后当我跑

from performance import *

在IPython中我收到以下错误:

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-4-c7c496c26b18> in <module>()
----> 1 import performance

/home/carlos/Workspace/Freestyle/Numba/performance.py in <module>()
     14             D[i, j] = np.sqrt(d)
     15 
---> 16 @jit(arg_types=[double[:,:], double[:,:]])
     17 def pairwise_numba(X, D):
     18     M = X.shape[0]

/usr/local/lib/python2.7/dist-packages/numba/decorators.pyc in _jit_decorator(func)
    209             argtys = restype.args
    210         elif argtys is None:
--> 211             assert func.__code__.co_argcount == 0, func
    212             return_type = None
    213             argtys = []

AssertionError: <function pairwise_numba at 0x4b61a28>

我无法使用pairwise_python或pairwise_numba。我怎样才能让它发挥作用?

系统信息

  • Linux Mint 13 KDE,64位
  • 默认gcc编译器版本:4.8
  • Python 2.7.3(使用gcc 4.6.3编译)
  • LLVM 3.2(使用gcc 4.8编译)
  • llvmpy 0.11.2
  • llvmmath 0.1.1
  • numpy 1.7.1
  • cython 0.19.1
  • nose 1.3.0
  • argparse 1.2.1

1 个答案:

答案 0 :(得分:1)

您似乎将错误的参数传递给@jit,请尝试使用:

@autojit
def yourfunction(...):
    ...

如果您提供有关您的功能的更多详细信息,我们可以告诉您@jit声明的错误。