{"library":"pipx","title":"pipx: Install and Run Python Applications in Isolated Environments","description":"pipx (Python Package Installer for Executables) is a tool to install and run Python applications in isolated environments. It ensures that executable applications installed via pip do not interfere with your system's global Python environment or other projects. It's currently at version 1.11.1 and follows an active, irregular release cadence, often aligning with important bug fixes or Python version support changes. pipx is primarily a command-line interface tool.","language":"python","status":"active","last_verified":"Thu Apr 09","install":{"commands":["pip install pipx"],"cli":{"name":"pipx","version":"1.12.0"}},"imports":[],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import subprocess\nimport sys\nimport os\n\n# This quickstart demonstrates installing an application via pipx.\n# pipx is primarily a command-line tool, so interaction is via subprocess calls.\n\n# 1. Ensure pipx itself is installed\nprint(\"Ensuring pipx is installed...\")\nsubprocess.run([sys.executable, \"-m\", \"pip\", \"install\", \"pipx\"], check=True, capture_output=True)\nprint(\"pipx ensured to be installed.\")\n\n# 2. Install a sample application (e.g., 'cowsay')\napp_name = \"cowsay\"\nprint(f\"\\nAttempting to install '{app_name}' with pipx...\")\ntry:\n    subprocess.run([\"pipx\", \"install\", app_name], check=True, capture_output=True)\n    print(f\"'{app_name}' installed successfully.\")\nexcept subprocess.CalledProcessError as e:\n    if \"is already installed\" in e.stderr.decode():\n        print(f\"'{app_name}' was already installed. Proceeding.\")\n    else:\n        print(f\"Error installing {app_name}: {e.stderr.decode()}\")\n        sys.exit(1)\n\n# 3. Run the installed application\nmessage = \"Hello from checklist.day's pipx quickstart!\"\nprint(f\"\\nRunning '{app_name}' via pipx...\")\ntry:\n    # Use 'pipx run' for demonstration, which temporarily adds to PATH\n    # and executes. For persistently installed apps, users would typically\n    # run 'cowsay <message>' directly after 'pipx ensurepath'.\n    result = subprocess.run([\"pipx\", \"run\", app_name, message], capture_output=True, text=True, check=True)\n    print(result.stdout)\nexcept subprocess.CalledProcessError as e:\n    print(f\"Error running {app_name}: {e.stderr.decode()}\")\n    sys.exit(1)\n\n# 4. List installed applications and uninstall\nprint(\"\\nListing pipx installed applications:\")\nsubprocess.run([\"pipx\", \"list\"], check=True)\n\nprint(f\"\\nUninstalling '{app_name}'...\")\nsubprocess.run([\"pipx\", \"uninstall\", app_name], check=True, capture_output=True)\nprint(f\"'{app_name}' uninstalled successfully.\")","lang":"python","description":"This quickstart demonstrates the core workflow of pipx: installing pipx itself, then using it to install a sample CLI application (cowsay), running it, listing installed applications, and finally uninstalling it. All interactions are done by calling pipx as a command-line tool via subprocess, reflecting its primary mode of use.","tag":null,"tag_description":null,"last_tested":"2026-04-24","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}]},"compatibility":null}