managing-python-dependencies
Skill240 starsChanged 5 months agoApache-2.0View on GitHub
Ensures proper Python dependency management, avoiding global `pip install` and adhering to project-specific tooling.
- Installs packages
3 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- sid-lakhani/agents-configedited, first seen Oct 20, 2026
- Luckycat133/gemini-web-mcpedited, first seen Oct 15, 2026
- matt-rabah/sf-ragedited, first seen Jun 28, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- sid-lakhani/agents-config★ 292% same
- Luckycat133/gemini-web-mcp★ 092% same
- matt-rabah/sf-rag★ 092% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository39 other files it gives its agents.
- accidental-data-loss-preventionSkill
- bigquery-ai-mlSkill
- bigquery-bigframesSkill
- bigquery-data-transfer-serviceSkill
- bigquery-graph-authorSkill
- bigquery-graph-querySkill
- bigquery-observabilitySkill
- bigquery-optimizationSkill
- bigquery-troubleshootingSkill
- bigtable-basicsSkill
- building-data-appsSkill
- cloud-databases-onboardingSkill
- dak-setupSkill
- data-autocleaningSkill
- dataform-bigquerySkill
- dbt-bigquerySkill
- discovering-gcp-data-assetsSkill
- enforcing-resource-attributionSkill
- federate-lakehouse-catalogSkill
- gcp-composer-troubleshootingSkill
- gcp-dataflowSkill
- gcp-data-pipelinesSkill
- gcp-managed-airflow-dag-authoringSkill
- gcp-managed-airflow-migrationsSkill
- gcp-managed-airflow-recommendationsSkill
- gcp-managed-spark-upgradesSkill
- gcp-pipeline-orchestrationSkill
- gcp-pipeline-resource-provisioningSkill
- gcp-spark-observabilitySkill
- gcp-sparkSkill
- gcp-spark-troubleshootingSkill
- gcs-security-assessmentSkill
- google-cloud-storage-basicsSkill
- google-cloud-storage-bucket-architectSkill
- google-cloud-storage-fuseSkill
- ml-best-practicesSkill
- notebook-guidanceSkill
- resolving-mcp-region-configsSkill
- schema-mappingSkill
The file
We split this skill into the rules it gives an agent
6 rules. 1 is common, 0 are distinctive, and 5 are very specific to this project.
1
Common
Most of the 3 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 58
Only run dependency manager detection when a package actually needs to be installed (e.g., on ModuleNotFoundError / ImportError or when …
- Common: line 91
If no dependency manager is detected, use venv + pip + requirements.txt as the default:
- Very specific: line 107
Always use .venv/bin/pip or .venv/bin/python (explicit path).
- Very specific: line 108
After installing, run: .venv/bin/pip freeze > requirements.txt.
- Very specific: line 109
When setting up: .venv/bin/pip install -r requirements.txt.
- Very specific: line 113
NEVER: run pip install globally
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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]
Reactive Environment Check Bundling (Only When Installing): Do NOT run environment or package availability checks (
importlib.util.find_spec,pip list,ls uv.lock...) proactively before writing code or creating a notebook. Only probe the environment when a package actually needs to be installed (for example, onModuleNotFoundError/ImportErroror an explicit user request to install dependencies).
- In Notebooks: When a notebook cell execution tool (
execute_cell/notebook_execute_cell) is available, check package availability (import <pkg>or%pip list) and install missing packages (%pip install) inside notebook cells, never viapython3 -corpipin the shell.- In the Shell (Only When Installing): When a shell check is required before installing a missing package for a local script or project, you MUST NOT run multiple sequential 1-line shell check commands. Combine all environment and package availability probes into a single composite python one-liner or shell check step:
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; when an install is needed, use a single
lsorfindcommand 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 (Only When Installing)
Only run dependency manager detection when a package actually needs to be
installed (e.g., on ModuleNotFoundError / ImportError or when setting up a
missing local project environment)—never as an upfront pre-flight check before
creating or running a notebook. Before installing ANY Python package, check the
workspace for these files in priority order:
- Signal:
uv.lockorpyproject.tomlwith[tool.uv]- Tool: uv
- Install:
uv add <package> - Setup:
uv sync
- Signal:
pyproject.tomlwith[tool.poetry]- Tool: Poetry
- Install:
poetry add <package> - Setup:
poetry install
- Signal:
Pipfile- Tool: Pipenv
- Install:
pipenv install <package> - Setup:
pipenv install
- Signal:
environment.yml- Tool: Conda
- Install:
conda install <package> - Setup:
conda env create -f environment.yml
- Signal:
requirements.txtonly- Tool: venv + pip
- Install:
.venv/bin/pip install <package> - Setup:
.venv/bin/pip install -r requirements.txt
- 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:
# Initialize environment
python3 -m venv .venv
# Add dependencies
.venv/bin/pip install <package>
# Preserve state
.venv/bin/pip freeze > requirements.txtRules for venv + pip workflow:
- Always use
.venv/bin/pipor.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 installglobally - NEVER override an existing dependency manager with a different one
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

