2009-11-11 12 views
7

Bir Snow Leopard bilgisayarında python'un macports sürümünü kullanıyorum ve buna çapraz platform uzantısı oluşturmak için cmake'yi kullanıyorum. yani sistem Python - cmake /opt/local/bin doğru tercüman tespit ederken,Cmake ile doğru Python çerçevesini bulma

include(FindPythonInterp) 
include(FindPythonLibs ) 

Ancak CMakeLists.txt aşağıdaki komutları kullanarak sistemde piton tercüman ve kütüphaneler için arama, yanlış çerçeve karşı bağlamak için çalışır çerçeve.

-- Found PythonInterp: /opt/local/bin/python2.6 
-- Found PythonLibs: -framework Python 

Ve -framework Python/opt/local/Library/Frameworks/Python.framework/Python şeyleri değiştirmek olarak bu kısa sürede aşağıdaki çalışma zamanı hatası

Fatal Python error: Interpreter not initialized (version mismatch?) 

neden beklendiği gibi çalışmıyor gibi görünüyor.

nasıl doğru Python framework karşı cmake bağlantı

/opt/local/Library/Frameworks/Python.framework/Python 

yerine

/System/Library/Frameworks/Python.framework/Python 

sistem bir

bulunan yapabilir?

cevap

5

. Görünüşe göre, python yorumlayıcısı ve cmake tarafından kullanılan python çerçevesi arasındaki bu tutarsızlık, yeni sürümde ümitle düzeltilmesi gereken bir hatadır.

1

CMake ile yakından tanıdık değilim, ancak gcc/ld'nin Apple sürümünde, yeni bir çerçeve arama yolu belirtmek için -F bayrağını geçirebilirsiniz. Örneğin, -F/opt/local/Library/Frameworks MacPorts'un çerçeve dizini dizininde arama yapar. Böyle bir bayrağı CMake kullanarak belirtebilirseniz, sorununuzu çözebilir. en azından geçici ~/.bash_profile

export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks 

düzeltmeleri sorunu aşağıdaki ekleme