{"id":404,"library":"jeepney","title":"Jeepney","description":"Jeepney is a low-level, pure Python D-Bus protocol wrapper, currently at version 0.9.0, designed for interprocess communication on desktop Linux systems. It offers a non-magical approach to D-Bus, requiring more explicit code compared to other interfaces like dbus-python or pydbus. Jeepney is actively maintained with a release cadence of approximately one major version per year.","status":"active","version":"0.9.0","language":"python","source_language":"en","source_url":"https://github.com/jeepney/jeepney","tags":["D-Bus","Python","Interprocess Communication","Linux"],"install":[{"cmd":"pip install jeepney","lang":"bash","label":"Install Jeepney"}],"dependencies":[{"reason":"Provides bindings for different event loops to handle I/O operations","package":"jeepney.io","optional":true}],"imports":[{"note":"Ensure correct import path to avoid ImportError","symbol":"DBusConnection","correct":"from jeepney import DBusConnection"}],"quickstart":{"code":"import os\nfrom jeepney import DBusConnection\n\n# Establish a connection to the D-Bus session bus\nconnection = DBusConnection()\n\n# Use the connection to interact with D-Bus services\n# For example, to call a method on a service:\n# response = connection.call(service_name, method_name, args)\n\n# Remember to handle exceptions and manage the connection lifecycle appropriately","lang":"python","description":"A basic example demonstrating how to import and use DBusConnection from jeepney to interact with D-Bus services."},"warnings":[{"fix":"Update your code to utilize proxies or 'send_and_get_reply()' for method call replies, and 'filter()' for other routing functionalities.","message":"The deprecated 'connection.router' API has been removed in version 0.9.0. Use proxies or 'send_and_get_reply()' for routing replies to method calls, and 'filter()' for other routing needs.","severity":"breaking","affected_versions":"0.9.0"},{"fix":"Remove the 'unwrap' parameter from 'send_and_get_reply' calls in your code.","message":"The 'unwrap' parameter from 'send_and_get_reply' in the blocking integration has been removed in version 0.9.0.","severity":"breaking","affected_versions":"0.9.0"},{"fix":"Update your import statement. Depending on your integration, you should import 'DBusConnection' from a submodule, e.g., 'from jeepney.blocking import DBusConnection' for blocking I/O, or 'from jeepney.io.asyncio import DBusConnection' for asyncio.","message":"The 'DBusConnection' class is no longer directly importable from the top-level 'jeepney' package due to module reorganization.","severity":"breaking","affected_versions":"0.9.0"},{"fix":"Update your imports from `from jeepney import DBusConnection` to `from jeepney.blocking import DBusConnection` or the appropriate submodule where it now resides.","message":"The 'DBusConnection' class is no longer directly importable from the top-level 'jeepney' package. It has been moved to a submodule, typically 'jeepney.blocking' for blocking connections or similar for other types of connections.","severity":"breaking","affected_versions":"0.9.0"}],"env_vars":null,"last_verified":"2026-05-12T13:36:27.388Z","next_check":"2026-06-26T00:00:00.000Z","problems":[{"fix":"Verify the correct D-Bus `object_path`, `bus_name`, `interface`, and `method_name` according to the D-Bus service's documentation. For instance, ensure the interface is explicitly defined for the method call, as in `dbus.Interface(obj, dbus_interface='org.freedesktop.Hal.Device')` if using `dbus-python` or by correctly structuring `DBusAddress` for `jeepney`.","cause":"This error occurs when a D-Bus method call is made to an object, but the specified interface or method does not exist on that object, or the object path is incorrect.","error":"jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.UnknownMethod] (\"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/secrets/collection/login\",)"},{"fix":"Ensure that the `DBUS_SESSION_BUS_ADDRESS` environment variable is correctly set in the environment where the Python script is executed. If running in a script without a graphical session, consider connecting to the system bus explicitly using `open_dbus_connection(bus='SYSTEM')` or set up the D-Bus session environment variables before running the script (e.g., `export $(dbus-launch)` or `export $(gnome-settings-daemon --start)` followed by `dbus-update-activation-environment`).","cause":"This error arises when `jeepney` attempts to connect to the D-Bus session bus (which is the default) but the `DBUS_SESSION_BUS_ADDRESS` environment variable is not set, typically in non-desktop environments, when running under `sudo --preserve-env` without a D-Bus session, or in containerized environments.","error":"KeyError: 'DBUS_SESSION_BUS_ADDRESS'"},{"fix":"Ensure the D-Bus daemon is running and healthy on the system. Check the status of the D-Bus service you are trying to communicate with. Implement robust error handling (e.g., `try...except BrokenPipeError`) to gracefully manage unexpected disconnections and potentially attempt to re-establish the connection.","cause":"This is an OSError subclass indicating that the D-Bus connection was unexpectedly closed by the peer, meaning the D-Bus daemon or the service being communicated with terminated the connection or stopped listening.","error":"BrokenPipeError: [Errno 32] Broken pipe"},{"fix":"First, ensure `jeepney` is installed in your active Python environment: `pip install jeepney`. If it is installed, verify the import path is correct and matches the version of `jeepney` (e.g., `from jeepney.io.blocking import open_dbus_connection`). Check your Python environment's `sys.path` to ensure the installation directory is included.","cause":"This error occurs when the Python interpreter cannot find the specified submodule, typically because `jeepney` was not installed correctly, the Python environment is not configured to include `jeepney`'s installed path, or there is a typo in the import statement.","error":"ModuleNotFoundError: No module named 'jeepney.io.blocking'"}],"ecosystem":"pypi","meta_description":null,"install_score":0,"install_tag":"stale","quickstart_score":0,"quickstart_tag":"stale","pypi_latest":null,"install_checks":{"last_tested":"2026-05-12","tag":"stale","tag_description":"widespread failures or data too old to trust","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]},"quickstart_checks":{"last_tested":"2026-04-23","tag":"stale","tag_description":"widespread failures or data too old to trust","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}