Pergunta de entrevista para Desenvolvedor Python

Como você configura dependências e ambientes num projeto Python novo?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Declare tudo no pyproject.toml e gerencie o ambiente com uv, que cria o ambiente virtual, resolve dependências e escreve um lock file rapidamente. Mantenha as dependências diretas frouxas na tabela do projeto, versione o lock file para instalações reprodutíveis, e separe ferramentas de desenvolvimento em grupos de dependência para as imagens de produção não levarem pytest e ruff.

Por que os entrevistadores perguntam isso

Empacotamento é onde o Python historicamente doeu, então o entrevistador está checando se você está atualizado em vez de ainda copiando um fluxo de requirements de uma década atrás. Eles querem a distinção entre dependências declaradas e lock file, consciência de que o pyproject.toml é o lugar padrão da configuração, e evidência de que você pensou em builds reprodutíveis em CI e Docker.

Como estruturar sua resposta

  • Cite o pyproject.toml como fonte única de verdade.
  • Separe faixas declaradas do lock file.
  • Divida grupos de dependência de runtime e de desenvolvimento.
  • Amarre isso a CI e a builds de container.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Tudo vive no pyproject.toml: as dependências, a configuração de ferramenta do ruff, do mypy e do pytest, os metadados de build. Eu uso uv para conduzir, porque ele cria a venv, resolve e instala rápido o suficiente para um ambiente de CI frio levar segundos em vez de minutos, e ele gerencia a versão do interpretador também, então ninguém fica brigando sobre qual Python está no path. As dependências diretas ganham restrições razoavelmente frouxas, aí o uv lock produz o conjunto resolvido exato e esse lock file é versionado. CI e Docker instalam a partir do lock congelado, então o que roda em produção é bit a bit o que eu testei. Ferramentas de desenvolvimento vão num grupo separado, o que deixa a imagem de runtime menor e significa que um linter comprometido não fica sentado no container de produção. No Docker eu copio o lock e o manifesto primeiro e instalo antes de copiar o código, para o cache de camadas funcionar de verdade. Migrar um projeto antigo de pip e arquivos de requirements levou talvez uma tarde e cortou vários minutos do nosso passo de setup no CI.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Do que o lock file te protege?
  • Como você lida com uma dependência que não tem wheel?
  • Como você gerencia várias versões de Python localmente?

Mais perguntas para Desenvolvedor Python

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot