Déclarez tout dans pyproject.toml et gérez l'environnement avec uv, qui crée l'environnement virtuel, résout les dépendances et écrit un fichier de verrouillage rapidement. Gardez les dépendances directes peu contraintes dans la table du projet, versionnez le fichier de verrouillage pour des installations reproductibles, et séparez les outils de développement dans des groupes de dépendances pour que les images de production n'embarquent pas pytest et ruff.
Pourquoi les recruteurs posent cette question
Le packaging est historiquement le point douloureux de Python, donc le recruteur vérifie que vous êtes à jour plutôt qu'encore sur un flux de travail à base de fichier requirements vieux de dix ans. Il veut la distinction entre dépendances déclarées et fichier de verrouillage, la conscience que pyproject.toml est l'endroit standard pour la configuration, et la preuve que vous avez pensé aux builds reproductibles en CI et dans Docker.
Comment structurer votre réponse
- Nommez pyproject.toml comme source unique de vérité.
- Séparez les plages déclarées du fichier de verrouillage.
- Séparez les groupes de dépendances d'exécution et de développement.
- Reliez cela à la CI et aux builds de conteneurs.
Exemple de réponse
Tout vit dans pyproject.toml : les dépendances, la configuration de ruff, de mypy et de pytest, les métadonnées de build. J'utilise uv pour piloter cela, parce qu'il crée le venv, résout et installe assez vite pour qu'un environnement de CI à froid prenne des secondes plutôt que des minutes, et il gère aussi la version de l'interpréteur pour que personne ne se batte sur le Python présent dans le path. Les dépendances directes reçoivent des contraintes raisonnablement larges, puis uv lock produit l'ensemble résolu exact et ce fichier de verrouillage est versionné. La CI et Docker installent depuis ce verrou figé, donc ce qui tourne en production est bit pour bit ce que j'ai testé. Les outils de développement vont dans un groupe séparé, ce qui garde l'image d'exécution plus petite et évite qu'un linter compromis se retrouve dans le conteneur de production. Dans Docker je copie le verrou et le manifeste d'abord et j'installe avant de copier les sources, pour que le cache de couches serve vraiment. Migrer un vieux projet depuis pip et les fichiers requirements a pris peut-être un après-midi et a réduit notre étape de préparation CI de plusieurs minutes.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Contre quoi le fichier de verrouillage vous protège-t-il ?
- Comment gérez-vous une dépendance sans wheel ?
- Comment gérez-vous plusieurs versions de Python en local ?
Autres questions pour Développeur Python
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions