install Psycopg2 on mac osx 10.9.5

2019-01-14 20:54发布

问题:

I'm trying to install Psycopg2 on my Mac-book. I still get the same error. I found a lot of same questions on Stack Overflow but no answer seems to work. I think it is outdated. I'm using:

Mac osx 10.9.5
Python 3.4.3

My error code is:

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 in /Users/stevengerrits/build/psycopg2 Storing complete log in /Users/stevengerrits/Library/Logs/pip.log

回答1:

You don't seem to have postgres installed, check how to install postgresql in your system, one of the way is brew install postgresql (if you use homebrew- recommended) or download the postgres app from postgresapp.com, pg_config should come with postgres and psycopg2 is trying to find it.



回答2:

To install psycop2 you need have installed server before( I have installed PostgresApp)

Run manually command including the path of pg_config program in PATH env variable, in my case:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin/

and then run

pip3 install psycopg2

EDIT:

Check directory of pg_config:

which pg_config


回答3:

OSX doesn't include PostgreSQL anymore, so you need to install it in some way to build the binary part of psycopg2 module.

I've used both brew and port. Installing any PostgreSQL version through one of them will enable you to build the module.

If you install Postgres in other ways, you need to check that the executable pg_config in in your path.

You can check for pg_config presence using the command

which -a pg_config

If you have Postgres installed and the aforementioned command doesn't return anything, you need to manually find the pg_config executable and put its containing directory in your PATH with:

export PATH=/path/to/postgresql/bin/:$PATH

Edit:

If you already installed it through homebrew, but it is not in your path, you should check if the /usr/local/bin directory is present in your path and add it if missing

If the directory is there, you can try to relink postgres with the following command

brew unlink postgresql && brew link postgresql


回答4:

If you use Docker and you do not want to install postgresql in you host system, you can try to use package psycopg2-binary and use postgresql in container.