2014-09-17 12 views
6

kullanılarak bulunamadı: Anaconda python kullanırken MacOS üzerindePython.h ben bu yazının aşağıdaki basit piton/C örneği derlemek çalışıyorum yudum ve Anakonda Python

http://www.swig.org/tutorial.html

ben değilim. Ben

gcc -c example.c example_wrap.c -I/Users/myuser/anaconda/include/ 

çalıştırmak ancak

, alıyorum:

Missing Python.h while trying to compile a C extension module

Missing Python.h and impossible to find

:

example_wrap.c:130:11: fatal error: 'Python.h' file not found 
# include <Python.h> 
     ^

sorun bir dizi soru raporlandığına görünüyor

Python.h: No such file or directory

ama hiçbiri

herkes bu çözüldü MacOS üzerinde Anaconda özgü bir cevap sağlıyor gibi?

cevap

13

Kullanım gcc komuta seçenek -I/Users/myuser/anaconda/include/python2.7. (Yani piton 2.7 kullanıyorsanız farz ediyor kullandığınız piton sürümüyle eşleşen adını değiştirin..) Sen edebilirsiniz önerilen derleme bayrakları tümünü edinmek için komut python-config --cflags kullanın: Ancak

$ python-config --cflags 
-I/Users/myuser/anaconda/include/python2.7 -I/Users/myuser/anaconda/include/python2.7 -fno-strict-aliasing -I/Users/myuser/anaconda/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes 

e böyle aşağıdaki setup.py olarak basit kurulum komut dosyası, kullanmanızı tavsiye, uzatma modülünü kurmak ve tüm derleme ve sizin için bağlantı seçenekleri distutils rakam verdi.

distutils yudum bilir

$ swig -python example.i 
$ python setup.py build_ext --inplace 

, bunun yerine ( setup.py çalıştırıldığında terminale eko yapılır derleyici komutları bir göz atın.): ​​
# setup.py 

from distutils.core import setup, Extension 


example_module = Extension('_example', sources=['example_wrap.c', 'example.c']) 

setup(name='example', ext_modules=[example_module], py_modules=["example"]) 

Sonra çalıştırabilirsiniz kaynak dosyalarının listesinde example_wrap.c dahil, sen example.i içerebilir ve swig kurulum komut dosyası tarafından otomatik olarak idare edilecek:

Eğer uzatma modülü oluşturduktan sonra setup.py yukarıdaki sürümü ile 0
# setup.py 

from distutils.core import setup, Extension 


example_module = Extension('_example', sources=['example.c', 'example.i']) 

setup(name='example', ext_modules=[example_module], py_modules=["example"]) 

, size python kullanmak gerekir, tek komutla

$ python setup.py build_ext --inplace 

ile uzatma modülünü inşa edebilirsiniz:

: Bunun yerine senaryoyu setup.py kullanmamayı tercih ederseniz
>>> import example 
>>> example.fact(5) 
120 

, burada benim için çalıştı komutları bir dizi var

Not: Mac OS X 10.9 kullanıyorum.4:

$ gcc --version 
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin13.3.0 
Thread model: posix 
+0

Fantastic! İşe yaradı. Çok net bir açıklama! Teşekkürler. – Fra

+0

Setup.py programını kullanmayla ilgili ipuçlarını paylaştığınız için teşekkür ederiz ~~ Mac osx 10.11 ~~ – zhkzyth

İlgili konular