How to find pg_config path

PythonDjangoMacosPostgresql

Python Problem Overview


Complete newbie here, trying to set up Django to work with PostgreSQL.

I'm using mac osx 10.6.8. I have also installed PostgreSQL 9.3

When I run pip install psycopg2 in terminal I get the following error

Downloading/unpacking psycopg2
  Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded
  Running setup.py (path:/private/var/folders/A9/A99cs6x0FNusPejCVkYNTE+++TI/-Tmp-/pip_build_bengorman/psycopg2/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

creating pip-egg-info/psycopg2.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

writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.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'.

I've seen a number of posts on this
how-to-install-psycopg2-with-pip-on-python
pg-config-executable-not-found

but I have no clue how to find the bin folder location containing pg_config. Any tips on finding this path?

Python Solutions


Solution 1 - Python

I recommend that you try to use Postgres.app. (http://postgresapp.com) This way you can easily turn Postgres on and off on your Mac. Once you do, add the path to Postgres to your .profile file by appending the following:

PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

Only after you added Postgres to your path you can try to install psycopg2 either within a virtual environment (using pip) or into your global site packages.

Solution 2 - Python

sudo find / -name "pg_config" -print

The answer is /Library/PostgreSQL/9.1/bin/pg_config in my configuration (MAC Maverick)

Solution 3 - Python

Installing homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

And then installing postgresql

brew install postgresql

gave me this lovely bit of output:

checking for pg_config... yes

ahhh yeahhhhh

Solution 4 - Python

Postgres.app was updated recently. Now it stores all the binaries in "Versions" folder

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

Where 9.4 – version of PostgreSQL.

Solution 5 - Python

Once you install the current PostgreSQL app on the MacOS X 10.11, this is where the pg_config file is /Library/PostgreSQL/9.5/bin/pg_config.

Then on the Terminal:

    $ export PG_HOME=/Library/PostgreSQL/9.5
    $ export PATH=$PATH:$PG_HOME/bin

This will put the path in the .profile of whatever terminal you are using.

In your environment (assuming you are using virtualenv) you then install psycopg2:

    $ pip install psycopg2

You should see if you had downloaded it before:

    Collecting psycopg2
      Using cached psycopg2-2.6.1.tar.gz
    Installing collected packages: psycopg2
      Running setup.py install for psycopg2 ... done
    Successfully installed psycopg2-2.6.1

Solution 6 - Python

To summarize -- PostgreSQL installs its files (including its binary or executable files) in different locations, depending on the version number and the installation method.

Some of the possibilities:

/usr/local/bin/
/Library/PostgreSQL/9.2/bin/
/Applications/Postgres93.app/Contents/MacOS/bin/
/Applications/Postgres.app/Contents/Versions/9.3/bin/

No wonder people get confused!

Also, if your $PATH environment variable includes a path to the directory that includes an executable file (to confirm this, use echo $PATH on the command line) then you can run which pg_config, which psql, etc. to find out where the file is located.

Solution 7 - Python

I had exactly the same error, but I installed postgreSQL through brew and re-run the original command and it worked perfectly : > brew install postgresql

Solution 8 - Python

Have same issue on mac, you probably need to

> brew install postgresql

then you can run

> pip install psycopg2

The brew will fix PATH issue for you

this solution works for me at least.

Solution 9 - Python

You can find the pg_config directory using its namesake:

$ pg_config --bindir
/usr/lib/postgresql/9.1/bin
$ 

Tested on Mac and Debian. The only wrinkle is that I can't see how to find the bindir for different versions of postgres installed on the same machine. It's fairly easy to guess though! :-)

Note: I updated my pg_config to 9.5 on Debian with:

sudo apt-get install postgresql-server-dev-9.5

Solution 10 - Python

This is how to simply get the path of pg_config

$ which pg_config                 // prints the directory location 
/usr/bin/pg_config

Solution 11 - Python

check /Library/PostgreSQL/9.3/bin and you should find pg_config

I.E. /Library/PostgreSQL/<version_num>/

ps: you can do the following if you deem it necessary for your pg needs -

create a .profile in your ~ directory

export PG_HOME=/Library/PostgreSQL/9.3
export PATH=$PATH:$PG_HOME/bin

You can now use psql or postgres commands from the terminal, and install psycopg2 or any other dependency without issues, plus you can always just ls $PG_HOME/bin when you feel like peeking at your pg_dir.

Solution 12 - Python

I used :

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

pip install psycopg2

Solution 13 - Python

Works for me by installing the first the following pip packages: libpq-dev and postgresql-common

Solution 14 - Python

For those using macOS Big Sur and have their default shell as the Z shell, you can add the path to the py_config binary in the .zprofile which is equivalent to the .bash_profile as explained in this link https://support.apple.com/en-us/HT208050

I had similar issues when using PyCharm with a virtual environment within which I was unable to change my shell to bash to get things going. Adding the postgres bin path fixed my issue:

MacBook-Pro ~ % cat .zprofile
# Setting PATH for Postgres
PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
export PATH

Then running this worked without any issues:

pip install psycopg2

Solution 15 - Python

path of pg_config in my case (MacOS)

/Library/PostgreSQL/13/bin

Execute the following in the terminal:

PATH="/Library/PostgreSQL/13/bin:$PATH"

Then

pip install psycopg2

Solution 16 - Python

For people looking for the pg_config path for postgresql installed via brew on Apple silicon: /opt/homebrew/Cellar/postgresql/<postgres_version>/bin.

For Intel based Mac system /usr/local/Cellar/postgresql/<postgres_version>/bin (Need to verify this).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBenView Question on Stackoverflow
Solution 1 - PythonelynchView Answer on Stackoverflow
Solution 2 - Pythonuser1953296View Answer on Stackoverflow
Solution 3 - PythoncpresView Answer on Stackoverflow
Solution 4 - PythonDaniil RyzhkovView Answer on Stackoverflow
Solution 5 - PythonAfrowaveView Answer on Stackoverflow
Solution 6 - PythonjkdevView Answer on Stackoverflow
Solution 7 - PythonromainmView Answer on Stackoverflow
Solution 8 - Pythonzoe_stockholmView Answer on Stackoverflow
Solution 9 - PythonMax MurphyView Answer on Stackoverflow
Solution 10 - Pythonbereket gebredingleView Answer on Stackoverflow
Solution 11 - PythoncodesageView Answer on Stackoverflow
Solution 12 - PythonDeepika AnandView Answer on Stackoverflow
Solution 13 - PythonKoleen BPView Answer on Stackoverflow
Solution 14 - PythoncwwaismView Answer on Stackoverflow
Solution 15 - PythonE Y CDView Answer on Stackoverflow
Solution 16 - PythonUmang AgarwalView Answer on Stackoverflow