2010-06-12 5 views
3

MESSAGE ORIGINAL (maintenant pas à jour):Pourquoi ne puis-je pas installer psycopg2? (Python 2.6.4, PostgreSQL 8.4, OS X 10.6.3)

Après python en cours d'exécution setup.py install je reçois le texte suivant:

Warning: Unable to find 'pg_config' filebuilding 'psycopg2._psycopg' extension 
gcc-4.0 -arch ppc -arch i386 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 - DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.2.1 (dt dec ext pq3)" -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -DHAVE_PQPROTOCOL3=1 -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I. -c psycopg/psycopgmodule.c -o build/temp.macosx-10.3-fat-2.6/psycopg/psycopgmodule.o 
unable to execute gcc-4.0: No such file or directory 
error: command 'gcc-4.0' failed with exit status 1 

Il y a Probablement quelque chose d'étonnamment évident là-bas pour quiconque connaît la première chose à propos de la programmation web back-end, mais malheureusement, il est tout gobbledegook à moi. La documentation de psycopg2 n'a pas été utile.


MISE À JOUR début 12 Juin: Après la mise à jour tous mes logiciels, le message d'erreur a changé.

Maintenant, quand je lance "setup.py python install" Je reçois le texte suivant:

Warning: Unable to find 'pg_config' filebuilding 'psycopg2._psycopg' extension 
gcc-4.0 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.2.1 (dt dec ext pq3)" -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -DHAVE_PQPROTOCOL3=1 -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I. -c psycopg/psycopgmodule.c -o build/temp.macosx-10.3-fat-2.6/psycopg/psycopgmodule.o 

suivie d'une très longue liste d'autres messages d'erreur.

Il peut ou peut ne pas être pertinent que lorsque je mets "gcc 4.0" dans Terminal, il revient avec:

i686-apple-darwin10-gcc-4.0.1: no input files 

Mise à jour 12:41 GMT 12 Juin: Je pensais que l'installation de macports avait travaillé, mais quand j'ai essayé de courir un site, il a pris fin avec l'erreur suivante:

raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2 

donc je suppose que cela signifie que psycopg2 avait pas installé correctement après tout. Donc je suis de retour à la case départ.

+1

De détails de la commande, il semble que vous êtes un Mac (débutant ou pas, ** TOUJOURS ** donner ** TOUS ** les détails de votre machine, système d'exploitation, et d'autres pièces essentielles évidemment !!!) - peut-être que vous n'avez pas installé XCode (c'est ce que vous donne gcc)? –

+0

Merci J'ai vérifié que XCode était installé et que tous mes logiciels étaient à jour, mais c'est toujours un problème. Incidemment, j'ai mentionné "OS X 10.6" dans le titre de la question, mais je vais le mentionner dans les détails la prochaine fois) –

+0

Cela ne devrait pas être sur la faute du serveur ou super utilisateur? –

Répondre

3

Je pense que vous le rendez plus difficile que cela doit être. Plutôt que de courir setup.py directement, je vous suggère de laisser MacPorts le faire pour vous:

sudo port install py26-psycopg2

+0

Merci, mais j'ai essayé de mettre cela dans Terminal et il est revenu avec "sudo: port: commande non trouvée" (même Terminal est assez nouveau pour moi ... –

+0

Peut-être que vous devez installer MacPorts? http://www.macports.org/install.php –

+1

Euh, oui, en effet je l'ai fait ... Merci beaucoup - MacPorts a travaillé un régal. –

8

(Voir les modifications ci-dessous pour votre question mise à jour)

Vous n'avez pas le fichier exécutable du compilateur « de gcc4.0 » sur votre machine, ou la version droite ou installé dans un endroit qui peut python » t trouver/utiliser. XCode/Developer Tools (include GCC) doit figurer sur les DVD d'installation OSX d'origine. Puisque vous êtes assez humble pour vous appeler un débutant, voici une pépite de sagesse ... La résolution de cette erreur n'a vraiment rien à voir avec le développement web back-end, car c'est votre environnement de développement local (votre machine et tout le logiciel tel qu'il est configuré et installé) est le problème. Le meilleur conseil que j'ai pour décrypter gobbledegook comme ceci est de commencer à googler des mots-clés pour des choses que vous n'avez jamais entendu parler auparavant. Si j'étais à votre place, ce message d'erreur me crie de "découvrir ce que c'est que gcc4.0", puis, quand je sais ce que c'est et ce qu'il fait, et pourquoi python en a besoin, alors je me demande pourquoi Python ne peut pas le trouver sur mon ordinateur, et puis je fais quelque chose à ce sujet. " La satisfaction de résoudre ce genre de problèmes n'arrive pas à tout le monde, cependant, c'est certain.

La réponse à toutes ces questions est la suivante: psycopg2 est une extension python écrite dans le langage C. Beaucoup d'extensions pour python sont écrites en C, pas en python, puisque C est beaucoup plus optimisé que python ne le sera jamais. C'est ce que l'interpréteur Python lui-même écrit, en fait. Code de langage C doit être compilé avant qu'il ne soit utilisable (contrairement au code python, qui est interprété) et dans ce cas, le compilateur dont vous avez besoin est gcc4.0.Maintenant, peut-être que si vous utilisiez Windows ou Linux, la version compilée de psycopg2 était déjà disponible, et vous n'auriez pas besoin de GCC installé, car vous n'auriez pas besoin de le compiler pour l'utiliser (il serait déjà compilé pour toi). Mais, il semble que vous devrez le compiler vous-même sur OS X, et pour ce faire, vous avez besoin du programme "gcc4.0" pour être disponible dans le système PATH afin que le script de configuration que vous essayez de lancer puisse trouver et l'utiliser. Sur OS X, vous pouvez l'obtenir à partir de vos DVD d'installation d'origine livrés avec votre ordinateur. Placez-les dans le lecteur et recherchez le programme d'installation des outils de développement. Une fois que vous l'avez installé, vous devriez alors être en mesure de vérifier si le compilateur GCC 4.0 est installé en essayant d'exécuter la commande "gcc4.0" dans n'importe quelle fenêtre de console et voir si elle est installée et dans votre chemin.

Modifier pour votre mise à jour

Il semble que vous avez maintenant une bonne installation du compilateur GCC 4.0! Bon travail. Lorsque vous voyez ceci:

>gcc4.0 
i686-apple-darwin10-gcc-4.0.1: no input files 

Cette sortie est compilateur dire sa version exacte, et vous dire que vous avez donné aucun paramètre, donc, il ne fera rien pour vous. Ce qui est correct, puisque votre script d'installation de psycopg2 va l'appeler, pas vous directement.

Ensuite, il semblerait que psycopg2 pense que les bibliothèques de développement de serveur PostgreSQL devraient également être installées. Depuis que je vois que vous êtes maintenant en utilisant MacPorts, vous devriez être en mesure d'installer ces bibliothèques facilement avec cette commande:

sudo port install postgresql-server-devel 

Cela devrait vous obtenir votre exécutable pg_config manquant que la configuration est à la recherche.

Tenez-nous au courant de vos progrès!

+0

Merci beaucoup pour tous les conseils et l'élucidation générale. J'ai mis à jour tous mes logiciels et gcc 4.0 est définitivement installé maintenant. Mais je ne peux toujours pas installer psycopg2. Le message d'erreur a changé (voir la question mise à jour). Je vais essayer de le déchiffrer via google comme vous le suggérez. –

+0

Les upvotes sont un bon moyen de donner merci :) Consultez ma modification pour votre mise à jour. –

+0

Upvoted avec merci! J'ai essayé d'installer les librairies de développement de serveur de PostgreSQL via MacPorts mais j'ai juste rencontré plus de problèmes: http://stackoverflow.com/questions/3033156/how-do-i-give-macports-privileges –

4

Si vous avez installé postgres de Enterprise DB vous aurez prob voulez juste

export PATH=$PATH:/Library/PostgreSQL/8.4/bin 

ou similaire - en fonction de la version que vous avez.

Si elle se plaint de

cc1: error: unrecognized command line option "-Wno-long-double" 

il n'aime pas votre nouvelle gcc - vous pouvez écraser votre gcc pour le forcer à utiliser gcc4.0 en faisant:

alias gcc=/usr/bin/gcc-4.0 

puis relancez votre easy_install à nouveau.

2

Je suis sûr que nous détesterions tous ignorer le "criant évident", alors peut-être que cela vaut la peine de vérifier avant d'aller installer un nouveau compilateur. Dans ce cas, il se peut que PostgreSQL ne soit pas installé sur le Mac de la personne. Par conséquent, psycopg2 ne peut pas trouver le programme 'pg_config' fourni avec les nouvelles versions de cette base de données, ce qui provoque l'émission du message d'avertissement "Impossible de trouver 'pg_config'". Donc, avant de jouer avec un nouveau compilateur ou une autre partie de la chaîne d'outils Developer, vérifiez d'abord si vous avez installé PostgreSQL ™. Si vous trouvez alors le programme 'pg_config', et mettez ce chemin dans le fichier 'setup.cfg' de la distribution de psycopg.Ensuite, lancez 'python setup.py install' et voyez si vous obtenez les mêmes messages d'erreur. Heureusement, il commence juste à "compiler"; mais si ce n'est pas le cas, vous seriez justifié d'exécuter les procédures plus difficiles décrites ci-dessus.

2
  1. Installer PostgreSQL pour Mac - http://www.postgresql.org/download/macosx

  2. définir le chemin vers le nouvel emplacement de PostgreSQL pour psycopg2 installer:

PATH=$PATH:/Library/PostgreSQL/9.0/bin/ sudo easy_install psycopg2 
Questions connexes