微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scipy错误:numpy.dtype大小已更改,可能表明二进制不兼容以及相关的奇怪行为

如何解决Scipy错误:numpy.dtype大小已更改,可能表明二进制不兼容以及相关的奇怪行为

您是如何建立sklearn 0.14.1的?您是否针对scipy使用相同版本的numpy进行构建?

scikit-learn,scipy和numpy的最新版本具有预构建的软件包。特别是scikit-learn 0.15.2应该与numpy 1.7+二进制兼容。我认为scipy 0.14.0也是如此,但是您说您是从源代码自己构建的,这不是pip认情况下应该做的(它应该只安装预构建的whl软件包)。

编辑 :您是否尝试过:

pip install -U scipy scikit-learn pandas

确保您使用的是这些软件包的最新稳定版本?

编辑 :下面的评论有实际的答案,并且可能是为什么这个答案被接受的原因。即:

pip uninstall -y scipy scikit-learn
pip install --no-binary scipy scikit-learn

解决方法

我在OS X 10.9.4上安装了numpy / scipy / scikit-learn,并且收到有关“
numpy.dtype大小已更改,可能表明二进制不兼容”的错误。

这是构建存储库的工作:

mkvirtualenv thm
workon thm
pip install numpy scipy pandas ipython # and some other stuff
cd /path/to/our/repo
# run tests

这是相关警告的摘要(由于warnings.simplefilter('error')在测试开始时使用,因此变成错误):

======================================================================
ERROR: Failure: RuntimeWarning (numpy.dtype size changed,may indicate binary in
compatibility)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/ben/.virtualenvs/thm/lib/python2.7/site-packages/nose/loader.py",line 414,in loadTestsFromName
    addr.filename,addr.module)
  File "/Users/ben/.virtualenvs/thm/lib/python2.7/site-packages/nose/importer.py
",line 47,in importFromPath
    return self.importFromDir(dir_path,fqname)
  File "/Users/ben/.virtualenvs/thm/lib/python2.7/site-packages/nose/importer.py
",line 94,in importFromDir
    mod = load_module(part_fqname,fh,filename,desc)
  File "/Users/ben/code/thm/alpha/prosper/base/stats/test_auc.py",line 3,in <m
odule>
    import sklearn.metrics
  File "/Users/ben/.virtualenvs/thm/lib/python2.7/site-packages/sklearn/metrics/
__init__.py",line 6,in <module>
    from .metrics import (accuracy_score,File "/Users/ben/.virtualenvs/thm/lib/python2.7/site-packages/sklearn/metrics/metrics.py",line 27,in <module>
    from scipy.spatial.distance import hamming as sp_hamming
  File "/Users/ben/.virtualenvs/thm/lib/python2.7/site-packages/scipy/spatial/__init__.py",line 90,in <module>
    from .ckdtree import *
  File "__init__.pxd",line 155,in init scipy.spatial.ckdtree (scipy/spatial/ckdtree.c:20570)
RuntimeWarning: numpy.dtype size changed,may indicate binary incompatibility

有人告诉我,此警告是由于scipy针对与安装版本不同的numpy版本编译的。但是,我以一种我认为很标准的方式通过pip安装了它们,所以我认为这应该不是问题。

奇怪的是,尽管将整个测试套件作为一个整体(通过python -m unittest discover)运行会产生这些错误,但运行单个测试(通过python -m unittest <module>)可以正常运行。

根据测试,这是一些相关的版本信息:

numpy version 1.9.0 (rev 07601a64cdfeb1c0247bde1294ad6380413cab66)
scipy version 0.14.0 (built against numpy 1.9.0)
sklearn version 0.15.2
pandas version 0.14.1

乐意根据要求提供更多信息!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。