使用numpy.linalg.slogdet需要哪个版本的python?

时间:2015-01-13 02:30:23

标签: python numpy condor

我使用要求Requirements = (HAS_NUMPY =?= TRUE)在Condor上运行我的python脚本。 这适用于普通的numpy函数,但是当我使用numpy.linalg.slogdet函数时,我收到错误:

Traceback (most recent call last):
  File "/var/lib/condor/execute/dir_17583/condor_exec.exe", line 11, in <module>
    ans=np.linalg.slogdet(a)[1]
AttributeError: 'module' object has no attribute 'slogdet'

虽然我很难知道该节点上存在哪个版本的python,但主神鹰机器上的版本是2.6.6。

代码非常简单:

import numpy as np
a=np.diag(np.arange(1,9))

ans=np.linalg.slogdet(a)[1]

我的问题是:
是否发生此错误是因为np.linalg.slogdet需要更高版本的python?
如果是这样,有没有办法指定Condor所需的python版本?

更新

使用了mgilson的建议,发现numpy版本是1.4.1,因此问题。 所以,现在这是一个Condor问题:有没有办法指定Condor提交文件中所需的numpy版本;比Requirements = (HAS_NUMPY =?= TRUE)更好的东西? 谢谢

1 个答案:

答案 0 :(得分:0)

您最好检查计算机上的numpy版本:

In [50]: np.version.version
Out[50]: '1.8.1'

因为文档说,np.linalg.slogdet函数是“versionadded :: 1.6.0。”