Managing Python Dependencies

by gemini-cli-extensions2df10e25bbf7Apache-2.0Listed Oct 8, 2026Updated Oct 8, 2026

Ensures proper Python dependency management, avoiding global `pip install` and adhering to project-specific tooling. Use this skill if any of the following are true: 1. Attempting to run `pip install {package_name}`. 2. Python packages or dependencies need to be added or modified. 3. Initiating a new Python project. 4. Creating a new notebook, even if just using BigQuery cells. 5. Generating Python code that includes `import` statements for third-party libraries. 6. Before executing Python scripts via the terminal to ensure the correct virtual environment is active.

Instructions onlySoftware Development
AI-generated overview

Guides agents to detect a Python project's dependency manager and install packages correctly instead of using global pip.

What it does
This skill provides rules for managing Python dependencies. It instructs the agent to inspect the workspace for lock and configuration files, choose the matching tool (uv, Poetry, Pipenv, Conda, or venv with pip), and use that tool's install and setup commands. It also defines a default venv-plus-pip workflow and lists prohibited actions such as global pip installs.
When to use it
Use it when adding or modifying Python packages, starting a new Python project, creating a notebook, generating Python code with third-party imports, or running Python scripts from the terminal. It is meant to keep installs aligned with the project's existing tooling.
Requirements
No scripts are shipped; it is instructions only. It assumes a shell environment with Python and whichever dependency manager the project uses, and it may require network access to install packages.

Python Dependency Management Rule

[!CAUTION]

BEFORE any pip install: You MUST first detect the project's existing dependency manager and use it correctly. Do NOT override the project's established tooling.

[!NOTE]

Pre-Flight Environment Check Bundling: You MUST NOT run multiple sequential 1-line shell check commands (e.g. separate commands for python version, pyspark version, auth check, pip list). Combine all pre-flight environment and package availability probes into a single composite python one-liner or shell check step.

Example composite probe:

bash
python3 -c "import sys, importlib.util; print(f'Python {sys.version.split()[0]}'); [(print(f'{pkg}: {__import__(pkg).__version__}') if importlib.util.find_spec(pkg) else print(f'{pkg}: not found')) for pkg in ['pyspark', 'google.cloud.bigquery']]"

This bundling also applies to dependency manager detection; use a single ls or find command to check for all potential dependency manager configuration and lock files at once (e.g. ls uv.lock poetry.lock Pipfile.lock requirements.txt pyproject.toml).

Dependency Manager Detection

Before installing ANY Python package, check the workspace for these files in priority order:

  1. Signal: uv.lock or pyproject.toml with [tool.uv]
    • Tool: uv
    • Install: uv add <package>
    • Setup: uv sync
  2. Signal: pyproject.toml with [tool.poetry]
    • Tool: Poetry
    • Install: poetry add <package>
    • Setup: poetry install
  3. Signal: Pipfile
    • Tool: Pipenv
    • Install: pipenv install <package>
    • Setup: pipenv install
  4. Signal: environment.yml
    • Tool: Conda
    • Install: conda install <package>
    • Setup: conda env create -f environment.yml
  5. Signal: requirements.txt only
    • Tool: venv + pip
    • Install: .venv/bin/pip install <package>
    • Setup: .venv/bin/pip install -r requirements.txt
  6. Signal: None of the above
    • Tool: venv + pip (default)
    • Install: .venv/bin/pip install <package>
    • Setup: .venv/bin/pip install -r requirements.txt

Default: venv + pip

If no dependency manager is detected, use venv + pip + requirements.txt as the default:

bash
# Initialize environmentpython3 -m venv .venv
# Add dependencies.venv/bin/pip install <package>
# Preserve state.venv/bin/pip freeze > requirements.txt

Rules for venv + pip workflow:

  • Always use .venv/bin/pip or .venv/bin/python (explicit path).
  • After installing, run: .venv/bin/pip freeze > requirements.txt.
  • When setting up: .venv/bin/pip install -r requirements.txt.

Prohibited

  • NEVER run pip install globally
  • NEVER override an existing dependency manager with a different one

Source and attribution

Source:gemini-cli-extensions/data-agent-kit-starter-packinskills/managing-python-dependenciesat commit2df10e2

License: Apache-2.0

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

More from gemini-cli-extensions/data-agent-kit-starter-pack

Schema Mapping

gemini-cli-extensions

Plans source-to-target schema mappings for ETL, ELT, or data integration work, producing a documented Mapping Manifesto.

Data & AnalyticsOct 8, 2026

Resolving Mcp Region Configs

gemini-cli-extensions

Fixes unreplaced region placeholders in regional Google Cloud MCP server configs so missing MCP tools register.

DevOps & CloudOct 8, 2026

Notebook Guidance

gemini-cli-extensions

This skill guides the use of Jupyter notebooks for data analysis, exploration, and visualization, particularly with BigQuery. It outlines best practices for notebook execution and validation (supporting both cell-by-cell execution and full notebook generation depending on tool availability), library installation, and structuring notebooks for clarity. It also covers specific rules for data cleaning, plotting, and integrating with BigQuery SQL and machine learning workflows. Relevant when any of the following conditions are true: 1. The user request involves a data analysis, data exploration, data visualization, or data insights task that requires multiple steps, queries, or visualizations to answer. 2. The user explicitly requests a notebook (.ipynb). 3. You are creating, editing, or executing cells in a Jupyter notebook. 4. You need to query BigQuery from within a notebook. DO NOT use the Python BigQuery client library; instead, you MUST use the `%%bqsql` magics explained in this skill.

Awaiting classificationOct 8, 2026

Ml Best Practices

gemini-cli-extensions

Guides machine learning notebooks with step-by-step plans for clustering, forecasting, classification, regression and model comparison.

Data & AnalyticsOct 8, 2026

Google Cloud Storage Fuse

gemini-cli-extensions

Mounts Cloud Storage buckets as a POSIX file system with Cloud Storage FUSE (gcsfuse). Use when you need to interact with gcsfuse — decide whether FUSE, native gs:// reads, or Filestore/Managed Lustre fits a workload, deploy tuned mounts on GKE, Compute Engine, or Cloud Run, enable and size the file, stat, and list caches, tune mount flags or config-file settings, apply workload profiles, keep ML checkpointing safe (rename atomicity, hierarchical namespace, close-time finalization, concurrent writers), or diagnose slow training, low throughput, or GCS bill spikes on existing mounts with gcsfuse metrics. Covers mount semantics, the gcsfuse CLI and config file, the GKE gcsfuse CSI driver (Workload Identity principal:// bindings, profile StorageClasses, sidecar sizing), and Cloud Run volume mounts. Don't use for bucket administration or data management without a mount (google-cloud-storage-basics) or for fully POSIX-compliant shared file systems (Filestore, Managed Lustre).

Awaiting classificationOct 8, 2026

Google Cloud Auth Verification

gemini-cli-extensions

Mandatory Step 0 pre-flight execution order and authentication verification for Google Cloud Platform (GCP), Application Default Credentials (ADC), gcloud CLI, Spark, Dataproc, BigQuery, GCS, and notebook runtimes. Use whenever interacting with GCP resources, running Spark/PySpark pipelines, BigQuery queries, GCS paths (gs://), or creating/running notebooks.

Awaiting classificationOct 8, 2026