Even though the usual ModuleNotFoundError are much obvious, sometimes there is an extra package or in this case a different package to be installed in order to get the required module. The error this time being:
ModuleNotFoundError: No module named 'psycopg2'
Package and module are used interchangeably.
Prerequisites
- Python 3
- pip
Solution
Step 1. cd to your Python project virtual environment directory. For instance:
Related: Create, manage and remove virtual environments in Python.
Step 2. Install the psycopg2 module.
pip install psycopg2-binary --user
Note(s):
- If the above command doesn’t work try replacing
pipwithpip3.
This way we are running the module’s binary version. However, one could argue that using a binary packages in production is discouraged.
If you still want to install the psycopg2 package the old-fashioned way (pip install psycopg2), first you need to install few “build”, dependency packages. For instance:
apt-get install libpq-dev -y
Not necessarily, but there might be other one or more dependency packages that “just” works based on your working environment, of course, including: build-dep, python-psycopg2, python3-psycopg2, python-dev, python3-dev, python-setuptools, python-dev-is-python3, python-devel, postgresql-devel, postgresql-dev, django-psycopg2-extension.
Conclusion
Related posts:
- Resolve: “No module named <insert-package-name-here>” in Python.
- Resolve: “Resolve: "WARNING: The requested image’s platform (linux/amd64) does not match the detected host platform (linux/arm64/v8).
Feel free to leave a comment below and if you find this tutorial useful, follow our official channel on Telegram.