我想在Apache 2.2.14下使用Mac OS X 10.6上的非默認python安裝來運行mod_wsgi 3.1。Snow Leopard上的mod_wsgi python版本不匹配
下載的mod_wsgi源後,我跑:
sudo apachectl -k stop
然後
./configure --with-python=/usr/local/Cellar/python/2.6.4/bin/python
make
sudo make install
然後我啓動Apache的再次
sudo apachectl -k start
當我貓在/ var /日誌/的httpd/error_log我看到:
[Mon Dec 21 12:27:26 2009] [warn] mod_wsgi:爲Python/2.6.4編譯。
[Mon Dec 21 12:27:26 2009] [warn] mod_wsgi:運行時使用Python/2.6.1。
[週一年12月21 12點27分26秒2009] [聲明]的Apache/2.2.14(UNIX)DAV/2的mod_wsgi/3.1的Python/2.6.1配置 - 恢復正常操作
當我運行otool -L mod_wsgi.so是看到:
mod_wsgi.so:
/System/Library/Frameworks/Python.framework/Versions/2.6/Python(兼容版本2.6.0,目前版本2.6.1)
/usr/lib/libSystem.B.dylib(兼容版本1.0.0,當前版本125.0.0)
是怎麼回事?爲什麼它與系統框架鏈接?
下面是輸出從我mod_wsgi的配置和構建命令:
阿基米德:mod_wsgi的-3.1 awolf $的./configure --with-蟒蛇=在/ usr /本地/庫/蟒蛇/ 2.6。 4 /斌/ Python的
檢查apxs2 ......沒有
檢查APXS ... /選擇/ Apache2的/ bin中/ APXS
檢查Apache的版本2.2.14 ...
配置:創建./config.status
config.status:創建Makefile文件
阿基米德:mod_wsgi的-3.1 awolf $使
的/ opt/Apache2的/斌/的apxs -c -I/usr/local/Cellar/python/2.6.4/include/python2.6 -DNDEBUG -Wc,' - arch x86_64'mod_wsgi.c -L/usr/local/Cellar/python/2.6.4/lib -L / usr /local/Cellar/python/2.6.4/lib/python2.6/config -arch x86_64 -lpython2。6 -ldl /Library/Webserver/build/libtool --silent --mode = compile gcc -prefer-pic -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp -precomp -g -O2 -I/opt/apache2/include -I/opt/apache2/include -I/opt/apache2/include -arch x86_64 -I/usr/local/Cellar/python/2.6.4/include/python2.6 -DNDEBUG -c -o mod_wsgi.lo mod_wsgi.c & &觸摸mod_wsgi.slo
在文件從/usr/local/Cellar/python/2.6.4/include/python2.6/Python.h:125包括,
from mod_wsgi.c:135:
的/ usr /本地/窖/python/2.6.4/include/python2.6/modsupport.h:27:warning:'PyArg_ParseTuple'是一個無法識別的格式函數類型 /Library/Webserver/build/libtool --silent --mode = link gcc -o mod_wsgi.la -rpath/opt/apache2/modules -module -avoid-version mod_wsgi.lo -L/usr/local/Cellar/python /2.6.4/lib -L / usr/local/Cellar/python/2.6.4/lib/python2.6/config -arch x86_64 -lpython2.6 -ldl
Archimedes:mod_wsgi-3.1 awolf $ sudo make安裝
密碼:
的/ opt/Apache2的/斌/的apxs -i -S LIBEXECDIR = /選擇/的Apache2 /模塊-n 'mod_wsgi的' mod_wsgi.la
/庫/ Web服務器/建設/ instdso.sh SH_LIBTOOL ='/ Library/Webserver/build/libtool'mod_wsgi.la /選擇/ apache2的/模塊
/庫/網絡服務器/建造/ libtool的--mode =安裝CP mod_wsgi.la /選擇/ apache2的/模塊/
CP的.libs/mod_wsgi.so /選擇/ apache2的/模塊/mod_wsgi.so
CP的.libs/mod_wsgi.lai /opt/apache2/modules/mod_wsgi.la
CP的.libs/mod_wsgi.a /opt/apache2/modules/mod_wsgi.a
chmod 644 /opt/apache2/modules/mod_wsgi.a
ranlib的/opt/apache2/modules/mod_wsgi.a
感謝您的回覆。不幸的是,--disable-framework沒有效果。 (我第一次做了:rm /opt/apache2/modules/mod_wsgi.so; rm -rf〜/ Downloads/mod_wsgi3.1/build; make distclean)。我會立即查看你的鏈接,看看裏面是否有任何寶石。 – awolf 2009-12-21 22:49:34
順便說一下,我用Homebrew將python安裝到/ var/local/Cellar中...... – awolf 2009-12-21 22:52:38
然後將問題轉移到mod_wsgi郵件列表中,以便雙重確認您實際上正在執行所要求的內容,結果是預計。這裏很難支持複雜的問題,應該使用郵件列表。 – 2009-12-22 20:06:42