descobrir se o módulo python está instalado ou em modo de desenvolver programaticamente
Pergunta
I tendem a desenvolver minhas aplicações em 'setup.py desenvolver' -mode. Eu gostaria que a configuração para mudar automagicamente no modo de produção quando o programa recebe 'setup.py install'ed.
Isto pode ser feito por hacks pobres, como verificar se o diretório de instalação contém 'setup.py', mas eu me pergunto se pkg_resources pode fazer isso por mim de alguma forma.
Solução
Na verdade, pkg_resources
vai fazer isso :
dist = pkg_resources.get_distribution('your-app')
if dist.precedence == pkg_resources.DEVELOP_DIST:
# package is in development mode
...
Outras dicas
Não é mais fácil, e mais limpo, apenas para definir uma variável de ambiente na máquina de desenvolvimento e teste para os.environ['development_mode']
(ou uma configuração de sua escolha)?
Outra opção é usar virtualenv . Em seguida, seu ambiente de desenvolvimento poderia ser idêntico ao seu ambiente de produção. Setuptools é uma coisa pesada bonita para dependem, na minha opinião.