Os novatos em Python freqüentemente cometem o erro de enviar .pyc
arquivos
em repositórios git. Embora não seja prejudicial na maioria dos casos, às vezes
pode doer mais tarde de maneiras estranhas. Mas distribuir esses
arquivos com o código não é necessário em primeiro lugar, então é melhor apenas mantê-los fora
do repositório.
Os arquivos fonte Python são compilados em bytecode e salvos no disco na
forma de .pyc
arquivos que são usados pela
máquina virtual Python . Esses arquivos são gerados automaticamente e em tempo real em
cada máquina onde o código é executado, portanto, é praticamente inútil compartilhá-los
com colaboradores.
Além disso, caso .pyc
exista um arquivo para um módulo, seu código pode ser
importado mesmo após a exclusão do arquivo fonte do módulo. Isso pode levar a
bugs estranhos no caso de um usuário excluir um módulo Python e esquecer de
excluir o .pyc
arquivo ao fazer o check-in das alterações e um colaborador
na outra extremidade tem algum código que ainda importa do
módulo agora não existente (um cenário raro, mas acontecer!).
Para não compartilhar seus arquivos com outras pessoas, você deve adicionar a entrada no arquivo .gitigore e o git começará a ignorar quaisquer novos arquivos no repo. Mas e aqueles arquivos que já estão sendo rastreados pelo git? Para corrigir isso, precisamos pedir ao git para remover esses caminhos de seu índice, executando o comando com a opção..pyc
"*.pyc"
.pyc
git rm
--cached
Por exemplo.
$ git rm --cached *.pyc
Ou, para desfazer o rastreamento de todos os arquivos em um projeto recursivamente,.pyc
$ find . -name '*.pyc' | xargs -n 1 git rm --cached
À parte: caso você se pergunte por que os arquivos-fonte Python são “compilados para
bytecode” quando é uma linguagem interpretada, acho que esta resposta no
StackOverflow de Alex Martelli explica isso de forma excelente.