Questo è un modo per dichiarare i cosiddetti "pacchetti namespace" in Python.
Cosa sono e qual è il problema:
Immaginate di distribuire un prodotto software che ha un sacco di funzionalità, e non tutte le persone che vogliono tutto questo, in modo da dividere in pezzi e spedire i plugin come optional .
vuoi che la gente di essere in grado di fare
import your_project.plugins.plugin1
import your_project.plugins.plugin2
...
che va bene se la struttura delle directory è esattamente come sopra, vale a dire
your_project/
__init__.py
plugins/
__init__.py
plugin1.py
plugin2.py
Ma cosa succede se spedite quei due plugin come python separata pacchetti in modo che si trovino in due diverse directory? Quindi potresti voler inserire __import__('pkg_resources').declare_namespace(__name__)
in ogni pacchetto __init__.py
in modo che Python sappia che quei pacchetti fanno parte di un "pacchetto spazio dei nomi" più grande, nel nostro caso è your_project.plugins
.
Per ulteriori informazioni, fare riferimento allo documentation.
fonte
2016-05-08 21:08:57
Potreste trovare questa domanda e risposta utile: http://stackoverflow.com/questions/5064951/packaging-common-python-namespaces –