Pergunta

Eu produzi um ovo python usando o setuptools e gostaria de acessar seus metadados em tempo de execução. Atualmente, trabalhei:

import pkg_resources
dist = pkg_resources.get_distribution("my_project")
print(dist.version)

Mas isso provavelmente funcionaria incorretamente se eu tivesse várias versões do mesmo ovo instalado. E se eu tiver a versão de ovo e desenvolvimento instalada, executando esse código da versão de desenvolvimento, captaria a versão do ovo instalado.

Então, como faço para obter metadados para minha Ovo não um ovo correspondente aleatório instalado no meu sistema?

Foi útil?

Solução

Eu também sou um pouco novo no Python, mas pelo que entendi:

Embora você possa instalar várias versões do "mesmo" ovo (com o mesmo nome), apenas uma delas estará disponível para qualquer pedaço de código específico no tempo de execução (com base no seu método de descoberta). Portanto, se o seu ovo é quem chama esse código, ele já deve ter sido selecionado como a versão de my_project Para este código, e seu acesso será para sua própria versão.

Outras dicas

Exatamente. Portanto, você só pode obter as informações para o ovo atualmente disponível (singular) de uma biblioteca. Se você tiver vários ovos da mesma biblioteca na pasta de pacotes do site, verifique o Easy-Install.tth na mesma pasta para ver qual ovo é realmente usado :-)

Em uma nota do site: esse é exatamente o ponto de sistemas como o ZC.Buildout, que permite definir a versão exata de uma biblioteca que será disponibilizada a você, por exemplo, ao desenvolver um aplicativo ou servir um aplicativo da Web. Para que você possa, por exemplo, usar a versão 1.0 para um projeto e 1.2 para outro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top