2011-08-09 5 views
0

J'ai récemment effectué une mise à niveau vers Mac OS X Lion et j'essaie de faire fonctionner à nouveau psycopg2 avec python 2.6. Les instructions sur les sites précédents pour forcer Python à fonctionner en 32 bits de plus (voir des endroits comme ici: http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html) ne donnent pas de chance. Même en essayant de forcer Python à 32 bits en utilisant arc python -i386 me donne toujours l'erreur:Mac OS X Lion Psycopg2: Symbole non trouvé: _PQbackendPID

symbol not found: _PQbackendPID 
    Referenced from: /Library/Python/2.6/site-packages/psycopg2/_psycopg.so 
    Expected in: flat namespace 
+0

Lion est encore plus 64 bits alors pourquoi pas – Mark

Répondre

1

Avez-vous essayé arch -i386 python2.6 si vous utilisez Python fournie par Apple 2.6 /usr/bin/python2.6? Mais si vous exécutez toujours une version 32 bits de psycopg2 et des bibliothèques client PostgreSQL, il est peut-être temps d'installer de nouvelles versions universelles 64 bits ou 64 bits/32 bits. MacPorts peut aider avec cela.

+0

alors voici une mise à jour: faire arch -i386 python fonctionne, je suis en mesure d'importer psycopg2 très bien. Cependant, lorsque j'essaie d'exécuter mon serveur django en tapant 'arch -i386 python manage.py runserver', il échoue lors de l'importation. On dirait qu'il ne prend pas l'argument arch lorsque vous essayez de démarrer django – mikec

+0

Il se peut qu'un autre sous-processus Python soit démarré et par défaut 64 bits. Si vous utilisez le Python 2.6 fourni par Apple, vous pouvez contourner le problème en définissant les variables d'environnement Apple spéciales 'export VERSIONER_PYTHON_VERSION = 2.6' et' export VERSIONER_PYTHON_PREFER_32_BIT = yes' si vous utilisez '/ usr/bin/python '. Voir la page man Apple pour python ('man python'). Mais vous êtes probablement mieux à long terme en améliorant. –

+0

Oh, ding! Si vous avez suivi le conseil de l'autre personne dans votre autre question et effacé '/ usr/bin/python' en l'écrasant avec un lien symbolique, les suggestions' export' ci-dessus ne fonctionneront probablement pas. Je crois que la magie est gérée par le programme spécial '/ usr/bin/python' d'Apple. –

2

J'ai aussi eu ce problème sur Snow Leopard/10.6.8, et j'ai juste perdu une demi-journée au beau milieu d'un contrat assez intense. Pas drôle. J'ai fini par le réparer en supprimant complètement toutes les versions de postgres et en redémarrant, b) en supprimant complètement toutes mes installations de psycopg2 (utilisez locate et impitoyable), c) en mettant à jour mon système python à 2.7, d) en réinstallant virtualenv et pip la version python droite, puis e) en suivant les instructions sur cette page, en commençant par installer postgres 9.1 du programme d'installation de DMG:

http://hardlifeofapo.com/psycopg2-and-postgresql-9-1-on-snow-leopard/

au bout du compte, il était aussi facile:

virtualenv your_virtual_env_name 
. your_virtual_env_name/bin/activate 
export ARCHFLAGS="-arch i386 -arch x86_64" 
export PATH=$PATH:/Library/PostgreSQL/9.1/bin 
pip install psycopg2 

bonne la chance!

Questions connexes