2014-09-09 31 views
5

gösterebilir Ben numpy/scipy/OS X 10.9.4 üzerinde scikit-öğrenme yüklediğim ve değişmiş "numpy.dtype boyutu hakkında hataları alıyorum , ikili uyumsuzluğu gösterebilir ". (Bizim testlerin başında warnings.simplefilter('error') kullanmak bir hata nedeniyle dönüştü) İşte Scipy hatası: değişmiş numpy.dtype boyutu, ikili uyumsuzluk (ve ilişkili garip davranışlar)

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

alakalı bir uyarı bir traceback alıntı::

====================================================================== 
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 
İşte

Ben repo inşa etmek yaptık

Ben bu uyarı yüklü olandan Numpy farklı bir sürümü karşı derlenmekte SciPy neden olduğu söylendi. Ancak, ben oldukça standart bir yol olduğunu düşündüğüm içinde pip ile hepsini yüklü, yani bu bir sorun olmamalı, ben düşünürdüm.

Tuhaf olarak, tüm test paketimizi bir bütün olarak (python -m unittest discover aracılığıyla) çalıştırmaya rağmen, bu hataları verir, bireysel testleri (python -m unittest <module> aracılığıyla) çalıştırarak düzgün çalışır.

testlere göre, burada biraz alakalı versiyon bilgiler verilmiştir:

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 

istek üzerine daha fazla bilgi sağlamak için mutlu!

Eğer sklearn 0.14.1 inşa nasıl oldu

cevap

8

? Scipy için yaptığınız gibi aynı numaraya karşı mı yaptın? arasında

Son versiyonları scikit-öğrenme, scipy ve önceden oluşturulmuş-paketleri var numpy. Özellikle scikit-öğrenmek 0.15.2, sayısal 1.7+ ile uyumlu ikili olmalıdır. Aynı SciPy 0.14.0 de geçerlidir düşünüyorum ama sen (bu sadece önceden oluşturulmuş whl paketini yüklemek gerekir) varsayılan olarak yapmalıdır pip ne değildir bir kaynaktan kendin inşa söyledi.

Düzenleme:

pip install -U scipy scikit-learn pandas 

o paketler için whl en yeni ve kararlı sürümlerini kullandığınızdan emin olmak için: Yapmanız denediniz mi?

Edit: Aşağıdaki yorum işe yarayacak ve muhtemelen bu yanıtın neden kabul edildiği konusunda gerçek bir cevaba sahiptir. Yani:

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

Teşekkürler! Üzgünüz - sklearn'in bu sürümü, scikit-learn'in özelleştirilmiş versiyonunu kullandığım, yayının önceki bir versiyonundan geliyordu. Sonra stok sklearn'e geçtim ve postu güncelledim (hala problemi görmekteydim), fakat o satırı güncellemeyi unuttum. Yayını eşleşecek şekilde düzenledim. Benim scipy, scikit-learn ve pandalar artık en son sürümde ve önerdiğiniz komut hiçbir şey yapmıyor. –

+0

Ayrıca, kaynaktan scipy oluşturmadım. Aslında, belki de sorun bu mu? Önceden oluşturulmuş paketlerden bahsetmiştiniz - önceden oluşturulmuş paketleri kullanmak ve eşyaları kendim inşa etmek için Pip * 'e * dememenin bir yolu var mı? Çıktıdan, Pip derlenmiş numpy kendisi gibi görünüyor, ama scipy değil. –

+2

Bu garip, tam olarak aynı kurulumu yapıyorum ve bildirdiğiniz sorunu yeniden oluşturamıyorum. numpy 1.9.0, önceki sürümlerle uyumlu ABI olmalıdır. Her durumda şunları kullanabilirsiniz: 'pip kaldırma-scipy scikit-öğren & pip install –no-use-wheel scipy scikit-learn' scikit-öğrenmek ve tekerlekleri kullanmak yerine kaynaktan scipy yeniden oluşturmak için numpy'nin yeni sürümü ile çalışın. – ogrisel