Gerenciando o sys.path para vários desenvolvedores
O problema que estou enfrentando é pequeno, mas irritante:
Um colega está trabalhando em um projeto no sistema de controle de versão X (VCS-X). Outro colega está trabalhando em outro sistema de controle de versão Y e usa os pacotes do X.
Infelizmente, o colega no VCS-X usa importação local e modifica seu caminho usandosys.path.append('trunk/my_location')
no código deles.
Minha opinião é que essa é uma prática incorreta, pois os colegas do X obrigam o colega Y a editar o código antes de poder executá-lo, simplesmente porque o repositório é nomeado de maneira diferente.
Como essas dependências devem ser gerenciadas?
Exemplo:Desenvolvedor X:
>>> sys.path.append('my_repo/my_location')
>>> from my_location import toolbox
>>> nosetests -v
toolbox.test1 ... ok
toolbox.test2 ... ok
...
Desenvolvedor Y:
Passo 1:
>>> nosetests -v
toolbox.test1 ... fail
...
Passo 2:
>>> sys.path.append('my_repo/my_location')
>>> from my_location import toolbox
Import error: No such package.
Etapa 3:
>>> sys.path.append('my_colleagues_repo/my_location')
>>> from my_location import toolbox
>>> nosetests -v
toolbox.test1 ... ok
toolbox.test2 ... ok
"... Suspiro segue; o código está funcionando ..."