{"library":"python-consul","title":"Python Consul Client","description":"Python-consul is a client library for interacting with the Consul HTTP API. It provides a comprehensive set of features for service discovery, key-value storage, health checking, and session management. The library is currently at version 1.1.0 and is actively maintained with a moderate release cadence.","language":"python","status":"active","last_verified":"Thu May 14","install":{"commands":["pip install python-consul"],"cli":null},"imports":["from consul import Consul"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import consul\nimport os\n\n# Configure Consul connection details\nconsul_host = os.environ.get('CONSUL_HOST', '127.0.0.1')\nconsul_port = int(os.environ.get('CONSUL_PORT', '8500'))\nconsul_scheme = os.environ.get('CONSUL_SCHEME', 'http')\nconsul_token = os.environ.get('CONSUL_TOKEN', None) # For ACLs\n\ntry:\n    # Initialize Consul client\n    c = consul.Consul(\n        host=consul_host,\n        port=consul_port,\n        scheme=consul_scheme,\n        token=consul_token\n    )\n\n    # Example: Key-Value store operations\n    key = \"my_app/config/setting1\"\n    value = \"hello_consul_world\"\n\n    # Put a value\n    if c.kv.put(key, value):\n        print(f\"Successfully set key '{key}' to '{value}'\")\n    else:\n        print(f\"Failed to set key '{key}'\")\n\n    # Get a value\n    index, data = c.kv.get(key)\n    if data:\n        retrieved_value = data['Value'].decode('utf-8')\n        print(f\"Retrieved key '{key}': '{retrieved_value}' (index: {index})\")\n    else:\n        print(f\"Key '{key}' not found.\")\n\n    # Example: Register a service (minimal)\n    service_name = \"my-test-service\"\n    service_id = \"my-test-service-1\"\n    if c.agent.service.register(name=service_name, service_id=service_id, port=8000, tags=['python']):\n        print(f\"Service '{service_name}' registered successfully.\")\n    else:\n        print(f\"Failed to register service '{service_name}'.\")\n\n    # You can deregister later with:\n    # c.agent.service.deregister(service_id)\n    # print(f\"Service '{service_name}' deregistered.\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    print(\"Please ensure a Consul agent is running and accessible at \"\n          f\"{consul_scheme}://{consul_host}:{consul_port}\")","lang":"python","description":"Initializes a Consul client, sets and retrieves a key-value pair, and registers a simple service. It demonstrates configuring the connection using environment variables and basic error handling.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-14","installed_version":"1.1.0","pypi_latest":"1.1.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.2,"avg_import_s":0.87,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.6,"mem_mb":10,"disk_size":"21.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.8,"mem_mb":10,"disk_size":"21.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.42,"mem_mb":10,"disk_size":"22M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.62,"mem_mb":10,"disk_size":"22M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.75,"mem_mb":11.1,"disk_size":"23.6M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.06,"mem_mb":11,"disk_size":"23.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.67,"mem_mb":11.1,"disk_size":"24M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.93,"mem_mb":11,"disk_size":"24M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.69,"mem_mb":11.6,"disk_size":"15.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.09,"mem_mb":11.5,"disk_size":"15.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.69,"mem_mb":11.6,"disk_size":"16M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.09,"mem_mb":11.5,"disk_size":"16M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.67,"mem_mb":11.9,"disk_size":"15.1M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.9,"mem_mb":11.8,"disk_size":"14.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.7,"mem_mb":11.9,"disk_size":"16M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.98,"mem_mb":11.8,"disk_size":"15M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.53,"mem_mb":9.7,"disk_size":"20.7M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.93,"mem_mb":9.7,"disk_size":"20.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":0.49,"mem_mb":9.7,"disk_size":"21M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"python-consul","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.75,"mem_mb":9.7,"disk_size":"21M"}]}}