2012-01-26 16 views
6

Lütfen, hedef sistemde oldukları gibi numpy için doğru yolları belirlemenin en basit/en zarif yolu nedir? Ve sonra make komutu ile kullan? Şu andaNümerik uzantılarını kullanan C programı için Makefile

gcc kullanıyorum ... -I/usr/include/python2.7/-I/usr/lib/python2.7/site paketleri/numpy/çekirdek// numpy/

bulunmaktadır

ve bu iki öğenin, yapının üzerinde perfüze edildiği sisteme göre otomatik olarak seçili olmasını istiyorum.

python -c "import numpy; print numpy.__path__[0] + 'core/include/numpy/'" 

ama ilki konusunda emin değilim ve ben bile hala iyi gelen nasıl kullanılacağını emin olmazdım:

ikinciyi alabilirsiniz gibi görünüyor bu gibi maddeler bulunmaktadır (kolay/zarif bir şekilde) makefile

cevap

0

Yani bazı googling sonra ve bu experimentig ben ile geldi budur:

CFLAGS = $(shell python-config --includes) $(shell python -c "import numpy; print '-I' + numpy.__path__[0] + '/core/include/numpy/'") 

öyle ama tüm makinelerde çalışıyor görünüyor ne kadar güvenilir emin değil şimdiye kadar.

Ben mux tarafından önerilen yöntem bana

3

numpy.get_include() için işe yaramadı olarak kabuk çıkışından değişkenleri yapmak kurmak için $ (kabuk ...) kullanmak zorunda kaldı içerir almak için en kolay/en iyi yoldur. C uzantı modülünüz numpy kullanırsa Extension numaralı telefondan include_dirs=[numpy.get_include()]'u kullanmalısınız. Neden numpy.get_include() hiç tanımadığım bir belge yok gibi görünüyor. user1056255 sadece biraz daha iyi anlaşılacağı ama

Sonra ... yapabileceği

CFLAGS = $(shell python-config --includes) $(shell python -c "import numpy; print '-I' + numpy.get_include()")