使用python3和python 2.7

时间:2017-04-20 20:42:15

标签: python numba

我有两个python环境(python3和python2.7),我使用它们来测试涉及numba的程序。尽管有Python的版本,我得到了相同的TypeError消息,而我的朋友告诉我,如果他使用Python 2.7,程序只会抛出错误,但是在他的Python3设置中工作。

错误如下:

  

TypeError:参数类型没有匹配的定义int64,int64,int64,array(float64,3d,C),array(int64,2d,C)

我试图在虚拟Python3环境中更新软件包,但它仍然无法正常工作。代码有点太长了,但我的问题只是为什么我的设置无法使用numba功能。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:3)

如果您查看错误消息,它告诉您的是nbody的输入与您指定的签名不匹配(我在timeit调用之外运行它以使更多显式)。看起来好像您正在使用默认为64位的计算机,但您说body_pairs应该是int32[:,:]

解决方案是在创建此变量时明确指定类型:

BODY_PAIRS = np.array(list(itertools.combinations(np.arange(BODIES.shape[0]), 2)), dtype=np.int32)

请注意dtype的规范。