web-dev-qa-db-fra.com

Installation de psycopg2 dans virtualenv lorsque PostgreSQL n'est pas installé sur le système de développement

Est-il possible d'installer psycopg2 dans une virtualenv lorsque PostgreSQL n'est pas installé sur mon système de développement - MacBook Pro avec OS X 10.6?

Lorsque j'exécute pip install psycopg2 à partir de ma virtualenv, j'ai reçu l'erreur ci-dessous.

J'essaie de me connecter à une base de données existante sur un serveur à l'aide de Django et je préférerais ne pas installer PostgreSQL sur mon système de développement, si possible.

Pourquoi ne pas installer PostgreSQL?

J'ai reçu une erreur lors de l'installation de PostgreSQL avec homebrew. J'ai Xcode4 - et seulement Xcode4 - installé sur mon MacBook Pro et je pense que cela est lié à l'absence de gcc 4.0. Cependant, cela pose un problème pour une autre question de StackOverflow.

Mise à jour le 12 avril 2011 à 8h37: J'aimerais toujours savoir si cela est possible sans installer PostgreSQL sur mon MacBook Pro. Cependant, j'ai exécuté brew update et forcé la réinstallation d’ossp-uuid avec brew install --force ossp-uuid et maintenant brew install postgresql fonctionne. Une fois PostgreSQL installé avec succès, j'ai pu pip install psycopg2 à partir de mon virtualenv.

Erreur de pip install psycopg2

$ pip install psycopg2
Downloading/unpacking psycopg2
  Running setup.py Egg_info for package psycopg2

    Error: pg_config executable not found.

    Please add the directory containing pg_config to the PATH
    or specify the full executable path with the option:

        python setup.py build_ext --pg-config /path/to/pg_config build ...

    or with the pg_config option in 'setup.cfg'.
    Complete output from command python setup.py Egg_info:
    running Egg_info

writing pip-Egg-info/psycopg2.Egg-info/PKG-INFO
writing top-level names to pip-Egg-info/psycopg2.Egg-info/top_level.txt
writing dependency_links to pip-Egg-info/psycopg2.Egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found

Error: pg_config executable not found.

Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:

    python setup.py build_ext --pg-config /path/to/pg_config build ...

or with the pg_config option in 'setup.cfg'.

----------------------------------------
Command python setup.py Egg_info failed with error code 1
Storing complete log in /Users/matthew/.pip/pip.log

Recherche préliminaire

Ci-dessous, les articles que j'ai lus à titre de recherche préliminaire:

60
Matthew Rankin

psycopg dépend de la commande pg_config et si vous ne l'avez pas, vous ne pourrez pas installer psycopg.

Si l'installation du système vous pose problème, pourquoi ne pas essayer de compiler PostgreSQL et d'inclure les fichiers bin générés dans votre $ PATH? Comme:

export PATH=/path/to/compiled/postgresql/bin:"$PATH"
pip install psycopg2
46
Hugo Tavares
apt-get install libpq-dev

m'a aidé sur Debian Squeeze

67
apt-get install libpq-dev

m'a aidé dans Debian Squeeze aussi. Après cela, installez psycopg2. J'ai fait face au problème de pg_config pas trouvé problème lorsque je configurais mon environnement sur heroku, maintenant cela fonctionne bien.

11
Ashwini Kumar

Vous devez installer le package python-dev pour pouvoir utiliser des extensions python telles que psycopg2. Je ne sais pas comment installer des packages sous mac, mais j'exécute les commandes suivantes pour installer un package python sur ma machine Ubuntu.

Sudo apt-get install python-dev 

Ou

Sudo apt-get install python3-dev

si vous utilisez Python3.x.

Une fois l'installation terminée, exécutez la commande suivante dans votre environnement virtuel.

pip install psycopg2
6
jetbird13

Vous n'avez pas besoin de l'intégralité de PostgreSQL installé: vous n'avez besoin que des bibliothèques côté client.

4
piro

En utilisant la méthode que vous avez décrite dans votre mise à jour du 12 avril, j'ai pu installer PostgreSQL (+1). Notez que j’exécutais à l’origine Python 2.7.1 (32 bits) et que homebrew a émis plusieurs erreurs et avertissements concernant l’utilisation d’une version 32 bits de Python. Depuis, j'ai changé la version 64/32 bits de 2.7.1 et cela fonctionne comme un champion. 

En ce qui concerne pyscopg2, j’ai pu l’installer dans mon environnement virtuel à partir des sources en modifiant le fichier setup.cfg. Je règle pg_config pour corriger le chemin dans la cave de homebrew (pg_config =/usr/local/Cellar/postgresql/9.0.4/bin/pg_config). Après avoir enregistré les modifications, j’ai exécuté le fichier setup.py d’installation de python sans aucun problème. Il est à noter que j’ai not défini le paramètre python par défaut du Mac sur 32 bits. J'ai utilisé le nouveau 64 bits du début à la fin.

Après avoir examiné une partie de la documentation, je pense que si j’avais ajouté le chemin postgresql d’homebrew au chemin système, j’aurais peut-être utilisé pip pour l’installer.

Référence:
http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html

Mise à jour du 6-8-2011:
Tout en portant un projet écrit sous OS X sur Windows 7, j'ai découvert que je devais également installer PostgreSQL sur Windows. Cela a fini par créer un autre utilisateur sur mon écran de démarrage et d’autres choses que je n’aimais tout simplement pas. En creusant, j'ai trouvé des pilotes Windows pour PostgreSQL ici . Depuis, j'ai désinstallé l'intégralité de PostgreSQL et installé les pilotes ODBC qui, jusqu'à présent, fonctionnent très bien.

Pour répondre à la question initiale, après avoir creusé un peu plus, je pense avoir trouvé l'équivalent ODBC pour OS X ici . Je n'ai pas encore eu l'occasion de les essayer, mais le concept fonctionne très bien sous Windows 7. Je le mettrai à jour dès que j'aurai l'occasion de les essayer. Jusque-là, j'espère que cela aide.

1
Adam Lewis

Je l'ai résolu dans MAC OSX en utilisant: 

$ wget https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.bz2
$ tar xfv postgresql-9.5.3.tar.bz2
$ cd postgresql-9.5.3
$ ./configure
$ make
$ cd src/bin/pg_config
$ export PATH=`pwd`:"$PATH"
$ pip install psycopg2
1
ji-ruh
brew install postgresql

export LDFLAGS="-L/usr/local/opt/openssl/lib"

export CPPFLAGS="-I/usr/local/opt/openssl/include"

pip3 install psycopg2
1
bruinspaw

N'ayant jamais eu besoin d'installer la base de données postgresql sur ce serveur, j'ai installé les bibliothèques suivantes sur la version Ubuntu 14_04 avant d'exécuter pip install psycopg2 sur le même serveur.

apt-get installez libpq-dev python-dev puis exécuté pip, installez psycopg2 dans env virtuel.

Sortie Collecte de psycopg2 Utilisation de la commande psycopg2-2.6.1.tar.gz .__ mise en cache pour créer des roues pour les packages collectés: psycopg2 Exécuter setup.py bdist_wheel pour psycopg2 Stocké dans le répertoire: /root/.cache/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329 Psycopg2 .__ réussi.

0
AKV