【问题标题】:Which version of python do I need for using numpy.linalg.slogdet?使用 numpy.linalg.slogdet 需要哪个版本的 python?
【发布时间】:2015-01-14 04:09:58
【问题描述】:

我正在使用要求 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,但主 condor 机器上的版本是 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) 更好的东西? 谢谢

【问题讨论】:

  • numpy.linalg.slogdet 似乎是在 numpy 1.6 中引入的。要检查你的 numpy 版本,你可以打印numpy.__version__

标签: python numpy condor


【解决方案1】:

您最好检查一下您机器上的numpy 版本:

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

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

【讨论】:

  • 谢谢,用了,发现版本是1.4.1。这就是问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 2014-09-27
  • 2011-04-21
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多