2010-08-20 3 views
3

J'utilise le Python 2.5 fourni avec Mac OS X Snow Leopard (10.6). J'ai mis la valeur par défaut: defaults write com.apple.versioner.python Version 2.5 et normalement je reçois python 2.5 comme il le suggère. Cependant quand j'essaye de construire mod_wsgi, cela ne semble pas adhérer. J'ai utilisé l'option --with-python=/usr/bin/python2.5 à configure pour le forcer à utiliser python 2.5 mais la bibliothèque partagée qui est construite se termine avec des références aux bibliothèques python 2.6.Construire mod_wsgi en utilisant python 2.5 sur Snow Leopard

J'ai aussi essayé:

  • mise $VERSIONER_PYTHON_VERSION à 2,5 avant de construire
  • laissant au large --with-python

J'ai lu la discussion sur a similar SO question. Contrairement à cette personne, j'utilise un python Mac OS X stock qui devrait fonctionner avec le code Frameworks dans le processus de construction mod_wsgi.


Voici la sortie de certaines commandes pertinentes. Notez la sortie finale de otool -L à la fin qui montre qu'il regarde dans le répertoire de framework de 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) 

Répondre

2

Essayez d'utiliser '--disable-framework' pour 'configurer'. Cela entraînera l'utilisation de -L/-l pour lier la bibliothèque Python plutôt que le lien du framework. Ceci est nécessaire car vous ne savez pas comment faire pour qu'un lien de framework utilise une version autre que ce qui est désigné comme 'Current'.

+0

Parfait. Merci. –

+0

Graham, tu répondais à mes questions plus tôt ... c'est ce que je cherchais. Merci beaucoup pour votre aide, directe ou indirecte :) –