Connecting to PostgreSQL using Python
Before you can access PostgreSQL databases using Python, you must install one (or more) of the following packages in a virtual environment:- psycopg2: This package contains the psycopg2 module.
- PyGreSQL: This package contains the pgdb module.
Setting up the Python virtual environment and installing a PostgreSQL package
To set up the Python virtual environment and install a PostgreSQL package, follow these steps:- Log in to your account using SSH.
-
At the command prompt, type the following command:
-
To create a virtual environment, type one of the following commands:
-
If you are running Python 3.x, type the following command:
-
If you are running Python 2.x, type the following command:
📘 Note Subsequent commands in this procedure assume that the environment is named sqlenv. You can use any environment name you want, but make sure you replace all occurrences of sqlenv with your own environment name.
-
If you are running Python 3.x, type the following command:
-
To activate the virtual environment, type the following command:
📘 Note The command prompt now starts with (sqlenv) to indicate that you are working in a Python virtual environment. All of the following commands in this procedure assume that you are working within the virtual environment. If you log out of your SSH session (or deactivate the virtual environment by using the deactivate command), make sure you reactivate the virtual environment before following the steps below and running the sample code.
-
To update pip in the virtual environment, type the following command:
-
Type the command for the package you want to install:
-
To install the psycopg2 package, type the following command:
-
To install the PyGreSQL package, type the following command:
-
To install the psycopg2 package, type the following command:
Code sample using Python’s portable SQL database API
After you install a PostgreSQL package in the virtual environment, you are ready to work with actual databases. The following sample Python code demonstrates how to do this, as well as just how easy it is to switch between the different SQL package implementations using the portable SQL database API. The sample code works with Python 2.7 and Python 3.x. In your own code, replace username with the PostgreSQL database username, password with the database user’s password, and dbname with the database name:As you can see, Python’s portable SQL database API makes it very easy to switch between PostgreSQL modules in your code. In the sample above, the only code changes necessary to use a different module are to the import and connect statements.
Code sample using the legacy pg module
The PyGreSQL package also includes a legacy pg module that you can use to connect to PostgreSQL. Although it is easy to use, it does not implement Python’s portable SQL database API. The following code sample demonstrates how to use the pg module to connect to a PostgreSQL database. Replace username with the PostgreSQL database username, password with the database user’s password, and dbname with the database name:More information
- For more information about Python’s portable SQL database API, please visit https://www.python.org/dev/peps/pep-0249.
- For more information about the psycopg2 package, please visit https://pypi.python.org/pypi/psycopg2.
- For more information about the PyGreSQL package, please visit https://pypi.python.org/pypi/PyGreSQL.