"Failed building wheel for psycopg2" - MacOSX using virtualenv and pip

PythonDjangoPostgresqlVirtualenvPsycopg2

Python Problem Overview


I'm attempting to make a website with a few others for the first time, and have run into a weird error when trying to use Django/Python/VirtualEnv. I've found solutions to this problem for other operating systems, such as Ubuntu, but can't find any good solutions for Mac.

This is the relevant code being run:

virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt

After running that block, I get the following errors:

> AssertionError

> ---------------------------------------- > Failed building wheel for django-toolbelt > Running setup.py bdist_wheel for psycopg2

...

> AssertionError

> ---------------------------------------- > Failed building wheel for psycopg2 > Failed to build django-toolbelt psycopg2

I believe I've installed the "django-toolbelt" and "psycopg2", so I'm not sure why it would be failing.

The only difference I can think of is that I did not use the command

sudo apt-get install libpq-dev

as was instructed for Ubuntu usage as I believe that installing postgresql with brew took care of the header.

Thanks for any help or insight!

Python Solutions


Solution 1 - Python

I had the same problem on Arch linux. I think that it's not an OS dependant problem. Anyway, I fixed this by finding the outdated packages and updating then.

pip uninstall psycopg2
pip list --outdated
pip install --upgrade wheel
pip install --upgrade setuptools
pip install psycopg2

hope this helps...

Solution 2 - Python

For MacOS users

After trying all the above methods (which did not work for me on MacOS 10.14), that one worked :

  • Install openssl with brew install openssl if you don't have it already.
  • add openssl path to LIBRARY_PATH :
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
  • install psycopg2 with pip pip3 install psycopg2

Solution 3 - Python

I was also getting same error. Using Python 3.7.3 and pip 19.1.1.

error screen

I used following command.

pip install psycopg2-binary==2.8.3

Solution 4 - Python

I had same problem and this appears to be a Mojave Issue, I was able to resolve with:

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Solution 5 - Python

TDLR

If you aren't used to installing Python C-extensions, and psycopg2 isn't a core part of your work, try

pip install psycopg2-binary
Building Locally

psycopg2 is a C-extension, so it requires compilation when being installed by pip. The Build Prerequisites section of the docs explain what must be done to make installation via pip possible. In summary (for psycopg 2.8.5):

  • a C compiler must be installed on the machine
  • the Python header files must be installed
  • the libpq header files must be installed
  • the pg_config program must be installed (it usually comes with the libpq headers) and on $PATH.

With these prerequisites satisfied, pip install psycopg2 ought to succeed.

Installing pre-compiled wheels

Alternatively, pip can install pre-compiled binaries so that compilation (and the associated setup) is not required. They can be installed like this:

pip install psycopg2-binary

The docs note that

> The psycopg2-binary package is meant for beginners to start playing with Python and PostgreSQL without the need to meet the build requirements.

but I would suggest that psycopg2-binary is often good enough for local development work if you are not using psycopg2 directly, but just as a dependency.

Concluding advice

Read the informative installation documentation, not only to overcome installation issues but also to understand the impact of using the pre-compiled binaries in some scenarios.

Solution 6 - Python

For Mac OS X users:

1. First check your postgresql path by running this command in terminal:

pg_config

If this fails lookup how to add pg_config to your path.

2. Next install Xcode Tools by running this command in terminal:

xcode-select --install

If you have both those sorted out now try to install psycopg2 again

Solution 7 - Python

For MacOS users, this question has the correct solution:

install command line tools if necessary:

xcode-select --install

then

env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2

Solution 8 - Python

On OS X, I was able to solve this by simply upgrading wheel before installing psycopg2:

pip install --upgrade wheel

Solution 9 - Python

Solution 10 - Python

I tried all the above solutions but they did not work for me. What I did was change the psycopg2 version in my requirements.txt file from psycopg2==2.7.4 to psycopg2==2.7.6

Solution 11 - Python

I was also facing the same after running all the above commands, but the following two commands worked for me:

  1. Instead of pip, use this:
sudo apt-get install libpq-dev
  1. then run this command:
pip install psycopg2

Solution 12 - Python

Is your error message complete? the most encountered reason for failing to install psycopg2 on mac from pip is pg_config is not in path. by the way, using macports or fink to install psycopg2 is more recommended way, so you don't have to worry about pg_config, libpq-dev and python-dev.

plus, are using Python 3.5? then upgrage your wheel to > 0.25.0 using pip.

Solution 13 - Python

I faced the same issue, but the answers above didn't work for me. So this is what I did in my requirements.txt psycopg2-binary==2.7.6.1 and it worked fine

Solution 14 - Python

I had this issue on several packages, including psycopg2, numpy, and pandas. I simply removed the version from the requirements.txt file, and it worked.

So instead of psycopg2-binary==2.7.6.1 I just had psycopg2-binary.

Solution 15 - Python

I know you are asking for development environment but if you are deploying on server say, Heroku. Just add below line in the requirements.txt of your project.

django-heroku==0.3.1

As this package itself will install the required packages like psycopg2 on server deployment.So let the server(heroku) should take care of it.

Solution 16 - Python

sudo apt install libpq-dev python3.X-dev 

where X is the sub version,

these should be followed by :

  pip install --upgrade wheel
  pip install --upgrade setuptools
  pip install psycopg2

Enjoy !!!

Solution 17 - Python

I solved my problem by updating/installing vs_BuildTools. The link to the software was given in the error itself. Error Image

Solution 18 - Python

Fixed by installing python3.7-dev: sudo apt install python3.7-dev, based on the link.

  • Python: 3.7

  • Ubuntu: 20.04.3 LTS

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
QuestionTaygo0oView Question on Stackoverflow
Solution 1 - PythonNikolaos DaleziosView Answer on Stackoverflow
Solution 2 - PythonRomainView Answer on Stackoverflow
Solution 3 - PythonAbhishek SinghView Answer on Stackoverflow
Solution 4 - PythonFarzad FarazmandView Answer on Stackoverflow
Solution 5 - PythonsnakecharmerbView Answer on Stackoverflow
Solution 6 - PythonhahmedView Answer on Stackoverflow
Solution 7 - PythonJohnView Answer on Stackoverflow
Solution 8 - PythonElmer MedezView Answer on Stackoverflow
Solution 9 - PythonAdam StarrhView Answer on Stackoverflow
Solution 10 - Pythoncodezero11View Answer on Stackoverflow
Solution 11 - PythoniihsanView Answer on Stackoverflow
Solution 12 - PythonSniper_3BView Answer on Stackoverflow
Solution 13 - PythonUtsav PreetView Answer on Stackoverflow
Solution 14 - PythonkeirasanView Answer on Stackoverflow
Solution 15 - PythonChristopher NolanView Answer on Stackoverflow
Solution 16 - PythonPrason GhimireView Answer on Stackoverflow
Solution 17 - PythonMuhammad Usama FarhatView Answer on Stackoverflow
Solution 18 - PythontarasinfView Answer on Stackoverflow