首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有当CreateCompatibleStrides用于防止轴的反向迭代时,才能调用Python: RuntimeError: Iterator DONT_NEGATE_STRIDES

只有当CreateCompatibleStrides用于防止轴的反向迭代时,才能调用Python: RuntimeError: Iterator DONT_NEGATE_STRIDES
EN

Stack Overflow用户
提问于 2014-06-11 21:34:25
回答 1查看 40关注 0票数 0

嘿,由于某些原因,我可以在LiClipse中运行我的应用程序,但不能从命令行运行完全相同的代码。当执行以下方法时,发生运行时错误。

代码语言:javascript
复制
def truncateOperator(self, v, k):
    """ Performs the truncate operation for a vector in the TPower
    algorithm.
    Inputs:
        v:      The vector to truncate
        k:      The number of elements of the vector to keep
    Outputs:
        u:      The v vector zeroed apart from the k highest elements.
    """
    u = zeros(v.shape[0])
    sortedIndices = argsort(abs(v), axis=0)
    sortedIndices = fliplr(sortedIndices.T).T

    vRestricted = v[sortedIndices[0:k],0]
    normV = 0
    if isinstance(vRestricted, csc_matrix):
        normV = norm(vRestricted.todense())
    else:
        ## Code fails here! ##
        normV = norm(vRestricted)
    if normV == 0:
        return csc_matrix(zeros(v.shape[0]))
    a = array(double(vRestricted))/normV
    u[sortedIndices[0:k]] = a[0:k, 0]
    u = csc_matrix(u)
    return u

错误是:只有在使用DONT_NEGATE_STRIDES阻止轴的反向迭代时,才能调用RuntimeError:迭代器CreateCompatibleStrides

如果有人能帮我解决这个问题,那就太好了。我希望能够从终端运行它。

谢谢,西奥

EN

回答 1

Stack Overflow用户

发布于 2014-06-12 17:42:00

您已经安装了scipy superpack提供的numpy版本,该版本似乎是使用(或者更确切地说,没有)此DONT_NEGATE_STRIDES编译的。

我会提出两个可能的建议:

  • 将此错误作为问题报告到scipy superpack issue page上的问题跟踪器中。他们可能会帮助你解决this.
  • alternatively,删除这个包(可能还有其他安装的scipy superpack包)。您可以只从site-packages目录中删除完整的*.egg目录。然后,使用pipsudo pip install numpy再次安装numpy。对之前从scipy superpack获得的其他必需软件包(例如,scipy、pandas等)执行相同的操作。这可能需要一段时间,因为它将在您的系统上编译(即,您没有下载二进制文件)。这需要安装XCode及其命令行工具(主要是gcc/clang)。

我自己的首选替代方案是使用homebrew来安装最新的Python版本(因此不使用system python),并使用相应的pip来安装所有必需的包(这避免了像现在这样将东西放在/System/Library中)。

最后,还有一个不需要删除或安装新东西的变通方法,尽管我不直接推荐它,因为它会在将来以某种方式伤害您:使用PYTHONPATH:设置您的PYTHONPATH在命令行中指向LiClipse包:

代码语言:javascript
复制
$ export PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python

这将把LiClipse包路径放在要找到的第一个位置,在scipy superpack包之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24164343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档