я установил LLVM 3.2 и все зависимости Numba (за исключением мета):Ошибка при использовании модуля Python Numba
- LLVM 3.1 или 3.2
- llvmpy (от llvmpy/llvmpy вилкой)
- llvmmath
- NumPy (версия 1.6 или выше)
- Мета (от Numba/Мета вилки (по желанию))
- Cython (построить зависимость только)
- нос (для модульных тестов)
- argparse (для pycc)
Я установил LLVM 3.2 и llvmpy в соответствии с инструкциями на этой странице https://github.com/llvmpy/llvmpy. Все остальные модули питона были установлены с помощью пип:
sudo pip install --upgrade module_name
Далее я попытался примеры Numba на этой странице: http://jakevdp.github.io/blog/2012/08/24/numba-vs-cython/. Я сохранил как pairwise_python
, так и pairwise_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
- нос 1.3.0
- argparse 1.2.1
Использование '@ autojit' действительно сработало. Однако он должен работать также в том порядке, который я опубликовал выше, поскольку он использовался для эталона в ссылке, приведенной выше. – Aeronaelius