Interviewfrage für Python-Entwickler

Wie setzt du Abhängigkeiten und Umgebungen in einem neuen Python-Projekt auf?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Deklarier alles in pyproject.toml und verwalte die Umgebung mit uv, das die virtuelle Umgebung anlegt, Abhängigkeiten auflöst und schnell eine Lockfile schreibt. Halt direkte Abhängigkeiten in der Projekttabelle locker, committe die Lockfile für reproduzierbare Installationen und trenn Entwicklungswerkzeuge in eigene Dependency Groups, damit Produktions-Images kein pytest und ruff mitschleppen.

Warum Interviewer das fragen

Packaging war in Python historisch schmerzhaft, also prüft der Interviewer, ob du aktuell bist statt weiter einen Requirements-Workflow von vor zehn Jahren zu kopieren. Sie wollen die Unterscheidung zwischen deklarierten Abhängigkeiten und einer Lockfile, das Bewusstsein, dass pyproject.toml der Standardort für Konfiguration ist, und Belege, dass du über reproduzierbare Builds in CI und Docker nachgedacht hast.

So baust du deine Antwort auf

  • Nenn pyproject.toml als die einzige Quelle der Wahrheit.
  • Trenn deklarierte Bereiche von der Lockfile.
  • Teil Runtime- und Entwicklungs-Dependency-Groups.
  • Verbinde es mit CI und Container-Builds.

Beispielantwort

Gesprochenes Beispiel, erste Person

Alles lebt in pyproject.toml: die Abhängigkeiten, die Tool-Konfiguration für ruff, mypy und pytest, die Build-Metadaten. Ich steuere das mit uv, weil es das venv anlegt, auflöst und so schnell installiert, dass eine kalte CI-Umgebung Sekunden statt Minuten braucht, und es verwaltet die Interpreter-Version gleich mit, sodass sich niemand darüber streitet, welches Python im Pfad liegt. Direkte Abhängigkeiten bekommen halbwegs lockere Constraints, dann erzeugt uv lock die exakt aufgelöste Menge, und diese Lockfile wird committet. CI und Docker installieren aus der eingefrorenen Lockfile, sodass in Produktion Bit für Bit läuft, was ich getestet habe. Entwicklungswerkzeuge kommen in eine eigene Gruppe, was das Runtime-Image kleiner hält und bedeutet, dass ein kompromittierter Linter nicht im Produktionscontainer sitzt. In Docker kopiere ich Lockfile und Manifest zuerst und installiere, bevor ich den Quellcode kopiere, damit Layer-Caching wirklich greift. Ein älteres Projekt von pip und Requirements-Dateien umzustellen hat vielleicht einen Nachmittag gedauert und unseren CI-Setup-Schritt um mehrere Minuten gekürzt.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wovor schützt dich die Lockfile?
  • Wie gehst du mit einer Abhängigkeit ohne Wheel um?
  • Wie verwaltest du lokal mehrere Python-Versionen?

Weitere Fragen für Python-Entwickler

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen