Python
openOBD can be installed and run on any machine that supports one of several compatible programming languages (1). The steps to install openOBD differ depending on the programming language used. This page outlines the steps required to install openOBD for Python.
C#/.NET,C++,Dart,Go,Java,Kotlin,Node,Objective-C,PHP, andRuby.
Note
gRPC requires that all arguments in a message are passed as keyword arguments in Python.
For example, instead of TicketId(123) it is necessary to specify TicketId(value=123).
Installation
To make use of the functionality of openOBD in Python, the openobd library will need to be installed.
The library can either be installed system-wide, or in a self-contained virtual environment.
Note
To install the openobd Python library, Python version 3.11 or higher is required.
Opening a terminal and running python --version will display the version that is currently installed, if any.
A virtual environment can be used to keep the installation of openOBD limited to that environment.
In this example, pipenv will be used to create a virtual environment containing Python 3.11.
To do this, open a terminal in the desired directory, and run:
Once the virtual environment has been created, the openobd library can be installed by running:
pipenv shell and exit respectively.
Environment variables
The openobd library needs the values stored in the environment variables to perform any gRPC calls.
Ensure you have a file containing the required environment variables, as described on this page.
These environment variables must be made accessible to Python.
This can be achieved in several different ways, some of which are detailed below.
When using the PyCharm IDE, it is possible to specify the path to the environment variables inside PyCharm.

To do this, first open your project in PyCharm, and open the expandable menu at the top right of the IDE's toolbar.
Then click Edit Configurations... to open PyCharm's configurations menu.

If no Python configuration for your script is present yet, create a new one by pressing the + at the top left.
In your file's Python configuration, specify the path to your environment variables in the Paths to ".env" files: field, and save it by clicking OK.
With this change, running the Python script through PyCharm will also automatically load the environment variables.
The environment variables can be automatically loaded when using a virtual environment.
To do this, ensure the file containing the environment variables is named .env and is located in the same directory as the Pipfile.
When running pipenv shell to activate the virtual environment, the environment variables will then automatically be loaded.
The python-dotenv library can be used to load environment variables from a file.
The library can be installed by opening a terminal and running:
load_dotenv() function requires the environment variables to be defined in a file named .env, and requires this file to be located in the same directory as the Python script.
Alternatively, the load_dotenv() function can also be passed a path to the file containing the environment variables.
To make the environment variables accessible from any location on the machine, they can be added to the system's environment variables. How to do this, depends on which operating system is used.
For example, when using Linux, the environment variables can be defined in the .bashrc file, which makes them available in new Bash shell sessions.
An environment variable can be defined in the .bashrc file as follows:
For an explanation on how to set environment variables on Windows, see this page.
It is also possible to use openOBD without creating a file containing the environment variables.
As a substitute, the values for the environment variables must be passed to the OpenOBD object as kwargs when initializing it.
The kwargs it expects are: client_id, client_secret, cluster_id, and grpc_host.
Any missing values will be described in an AssertionError when encountered.