Sto installando numpy/scipy/scikit-learn su OS X 10.9.4 e ricevo errori relativi a "numpy.dtype size changed , può indicare incompatibilità binaria ".Errore scipy: la dimensione numpy.dtype è stata modificata, potrebbe indicare l'incompatibilità binaria (e un comportamento strano associato)
Ecco quello che ho fatto per costruire il repo:
mkvirtualenv thm
workon thm
pip install numpy scipy pandas ipython # and some other stuff
cd /path/to/our/repo
# run tests
Ecco un estratto traceback di un avvertimento rilevante (trasformato in un errore perché usiamo warnings.simplefilter('error')
all'inizio del nostro test):
======================================================================
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
Mi viene detto che questo avviso è causato da scipy che viene compilato su una versione diversa di numpy rispetto a quella installata. Tuttavia, li ho installati tutti con pip in quello che pensavo fosse un modo abbastanza standard, quindi questo non dovrebbe essere un problema, penserei.
Stranamente, sebbene l'esecuzione dell'intera suite di test nel suo insieme (tramite python -m unittest discover
) restituisca questi errori, l'esecuzione dei singoli test (tramite python -m unittest <module>
) funziona correttamente.
Secondo i test, ecco alcune rilevanti informazioni sulla versione:
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
Felice di fornire più informazioni su richiesta!
Grazie! Scusa - quella versione di sklearn era di una versione precedente del post in cui stavo usando la nostra versione personalizzata di scikit-learn. Poi sono passato a stock sklearn e ho aggiornato il post (visto che stavo ancora vedendo il problema), ma ho dimenticato di aggiornare quella riga. Ho modificato il post in modo che corrisponda. I miei scipy, scikit-learn e panda ora sono tutti all'ultima versione e il comando che hai suggerito non fa nulla. –
Inoltre, non ho creato scipy dalla fonte. In realtà, forse questo è il problema? Hai citato pacchetti precompilati - c'è un modo per dire a Pip * non * di usare pacchetti precostruiti e di costruire io stesso le cose? Dall'output, sembra che Pip abbia compilato numpy, ma non scipy. –
Questo è strano, sto eseguendo esattamente la stessa configurazione e non riesco a riprodurre il problema segnalato. numpy 1.9.0 dovrebbe essere compatibile ABI con le versioni precedenti. Ad ogni modo si può usare: 'pip disinstallare -y scipy scikit-learn && pip installare -no-use-wheel scipy scikit-learn' per ricostruire scikit-learn e scipy dalla sorgente invece di usare le ruote, ma dovrebbero funziona con la nuova versione di numpy. – ogrisel