Hi folks,
In this post we discuss how to fix an error you may come across when you run import
psycopg2. You may come across this error if you have recently updated openssl to a version greater than 1.0.0 on Mac OS.
The error looks like
File "/Users/someuser/.virtualenvs/top_games/lib/python3.7/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 737, in dbapi import psycopg2 File "/Users/someuser/.virtualenvs/top_games/lib/python3.7/site-packages/psycopg2/__init__.py", line 50, in from psycopg2._psycopg import ( # noqa ImportError: dlopen(/Users/someuser/.virtualenvs/top_games/lib/python3.7/site-packages/psycopg2/_psycopg.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib Referenced from: /Users/someuser/.virtualenvs/top_games/lib/python3.7/site-packages/psycopg2/_psycopg.cpython-37m-darwin.so Reason: image not found
Here is how to fix it:
Activate your project’s virtual environment.
Update psycopg2 using the command:
pip install psycopg2 --upgrade
If you come across an error like
ld: library not found for -lssl
then run the following two commands in your terminal
export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include"
Then, try the aforementioned pip command once more.
That’s it. Once psycopg2 is upgraded, the import issue should be fixed.