Domanda

Ho prodotto un uovo di pitone usando setuptools e vorrei accedere ai suoi metadati in fase di esecuzione. Attualmente sto lavorando su questo:

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

ma probabilmente funzionerebbe in modo errato se avessi installato più versioni dello stesso uovo. E se ho installato sia l'uovo che la versione di sviluppo, quindi eseguendo questo codice dalla versione di sviluppo prenderei la versione dell'uovo installato.

Quindi, come posso ottenere metadati per il mio uovo non un uovo di corrispondenza casuale installato sul mio sistema?

È stato utile?

Soluzione

Sono un po 'nuovo anche in Python, ma da quello che ho capito:

Sebbene sia possibile installare più versioni di " stesso " uovo (con lo stesso nome), solo uno di essi sarà disponibile per qualsiasi particolare pezzo di codice in fase di esecuzione (in base al metodo di rilevamento). Quindi, se il tuo uovo è quello che chiama questo codice, deve essere già stato selezionato come la versione di my_project per questo codice e il tuo accesso sarà alla tua versione.

Altri suggerimenti

Esattamente. Quindi dovresti essere in grado di ottenere solo le informazioni per l'uovo attualmente disponibile (singolare) di una biblioteca. Se hai più uova della stessa libreria nella cartella dei pacchetti del sito, controlla easy-install.pth nella stessa cartella per vedere quale uovo è veramente usato :-)

Nota sul sito: questo è esattamente il punto di sistemi come zc.buildout che ti consente di definire la versione esatta di una libreria che ti sarà messa a disposizione, ad esempio, durante lo sviluppo di un'applicazione o la pubblicazione di un'applicazione web. Quindi puoi ad esempio usare la versione 1.0 per un progetto e la 1.2 per un altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top