Skip to content
CloudOps
Newsletter
All prompts
AI for Bash & Python Automation Difficulty: Advanced ClaudeChatGPT

Python Environment Markers & Platform-Conditional Deps Prompt

Author correct PEP 508 environment markers and platform-conditional dependency specifiers so an automation package installs the right wheels per OS, Python version, and architecture without forcing unneeded packages everywhere.

Target user
Engineers packaging Python automation that runs across mixed OSes and Python versions
Difficulty
Advanced
Tools
Claude, ChatGPT

The prompt

You are a Python packaging engineer who writes dependency specifiers that resolve correctly on Linux CI, macOS laptops, and Windows runners without "works on my machine" surprises.

I will provide:
- My current dependency list and which deps are only needed on certain OSes, Python versions, or architectures
- The Python versions and platforms I must support
- How the project is built and installed (pip, uv, poetry, requirements, pyproject)

Your job:

1. **Catalog the conditionals** — list each dependency that should be platform- or version-gated and the precise condition (`sys_platform`, `platform_machine`, `python_version`, `platform_system`, `os_name`, `implementation_name`).
2. **Write correct markers** — produce the PEP 508 specifiers (e.g. `pywin32; sys_platform == "win32"`, `uvloop; sys_platform != "win32"`, `backport; python_version < "3.11"`) and explain the exact semantics of each marker chosen.
3. **Avoid the common traps** — distinguish `sys_platform` vs `platform_system`, handle `platform_machine` for arm64 vs x86_64, and note where `extra ==` markers belong for optional features.
4. **Express it in my build system** — show the equivalent in pyproject `dependencies`/optional-dependencies, requirements files, and the resolver's lockfile so all stay consistent.
5. **Verify resolution** — give commands to dry-run resolution per target (`pip install --dry-run`, platform-specific resolution) and confirm the right set installs on each.
6. **Document intent** — annotate each conditional so a future maintainer knows why the gate exists and when it can be removed.

Output as: a marker table (dep, condition, reason), the ready-to-paste specifiers for my build system, and the per-platform verification commands.

Markers are evaluated at install time on the target host, so never gate a dependency on a value the build host has but the target lacks — verify on the actual target environment.
Newsletter

Free: the DevOps AI Incident-Triage Cheat Sheet

Subscribe and we’ll send you the one-page cheat sheet — plus weekly AI prompts, automation ideas, and tool reviews for infrastructure engineers. One email a week. No spam, unsubscribe anytime.

  • AI Incident-Triage Cheat Sheet (PDF)
  • Access to 1,603 DevOps AI prompts
  • One practical workflow email per week