2013-08-24 58 views
1

我已經安裝LLVM 3.2numba的所有相關性(除了甲基)時:錯誤使用Python模塊numba

  • LLVM 3.1或3.2
  • llvmpy(從llvmpy/llvmpy叉)
  • llvmmath
  • numpy的(1.6版或更高版本)
  • 元(從numba /元叉(可選))
  • 用Cython(生成依賴性僅)
  • 鼻部(單元測試)
  • argparse(對於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的文件中。後來,當我在IPython中運行

from performance import * 

我得到以下錯誤:

--------------------------------------------------------------------------- 
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
  • 鼻子1.3.0
  • argparse 1.2.1

回答

1

似乎要傳遞了錯誤的參數@jit,請嘗試使用:

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

如果你給你的功能的詳細信息,我們可以告訴你,什麼是錯的@jit聲明。

+0

使用'@ autojit'確實有效。然而,它也應該以我上面發佈的方式工作,因爲它在我上面給出的鏈接中用於基準測試。 – Aeronaelius