2010-08-20 57 views
3

我使用的是Mac OS X Snow Leopard(10.6)附帶的Python 2.5。我已經設置了默認值:defaults write com.apple.versioner.python Version 2.5,通常我會得到python 2.5。在Snow Leopard上使用python 2.5構建mod_wsgi

但是,當我試圖建立mod_wsgi,似乎並沒有堅持。我使用--with-python=/usr/bin/python2.5選項configure強制它使用python 2.5,但構建的共享庫最終引用了python 2.6庫。

我也試過:

  • 設置$VERSIONER_PYTHON_VERSION 2.5建設
  • 臨行前關閉--with-python

我通過討論閱讀a similar SO question。與那個人不同,我使用庫存Mac OS X python,它應該可以在mod_wsgi構建過程中的框架代碼中使用。


下面是一些相關命令的輸出。注意末尾的otool -L的最終輸出顯示它正在Python 2.6框架目錄中查找。

$ make distclean 
rm -rf .libs 
rm -f mod_wsgi.o mod_wsgi.la mod_wsgi.lo mod_wsgi.slo mod_wsgi.loT 
rm -f config.log config.status 
rm -rf autom4te.cache 
rm -f Makefile Makefile.in 

$ ./configure --with-python=/usr/bin/python2.5 
checking for apxs2... no 
checking for apxs... /usr/sbin/apxs 
checking Apache version... 2.2.14 
configure: creating ./config.status 
config.status: creating Makefile 

$ make 

    (compilation messages, no errors) 

$ otool -L .libs/mod_wsgi.so 
.libs/mod_wsgi.so: 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0) 
    /System/Library/Frameworks/Python.framework/Versions/2.6/Python (compatibility version 2.6.0, current version 2.6.1) 

回答

2

嘗試使用'--disable-framework'來'配置'。這將導致-L/-l被用於鏈接Python庫而不是框架鏈接。這是必要的,因爲不知道使框架鏈接使用指定爲「當前」的版本以外的其他方式。

+0

完美。謝謝。 – 2010-08-21 18:07:59

+0

格雷厄姆,你之前回答我的一個問題..這是我一直在尋找的。非常感謝您的幫助,直接或間接:) – 2011-06-23 08:16:41