Questa domanda segue The way to make namespace packages in Python e How do I create a namespace package in Python?.Pacchetti di namespace con una parte principale?
Nota PEP 420, e la distribute docs, in cui si afferma:
non si deve includere qualsiasi altro codice e dati in un pacchetto namespace di
__init__.py
. Anche se può sembrare che funzioni durante lo sviluppo, o quando i progetti vengono installati come file.egg
, non funzionerà quando i progetti vengono installati usando gli strumenti di packaging "di sistema" - in questi casi i file__init__.py
non verranno installati, per non parlare dell'esecuzione.
Tutto questo sembra rendere impossibile avere un pacchetto "libreria principale" con sotto-pacchetti di estensione distribuite in modo indipendente. Quello che voglio è essere in grado di:
definire un pacchetto di libreria di base, per essere utilizzato in questo modo:
import mylibrary mylibrary.some_function()
consentire estensioni biblioteca, confezionato e distribuito separatamente, da utilizzare come questo :
import mylibrary.myextension mylibrary.myextension.some_other_function()
mi sarei aspettato di essere in grado di fare questo con i pacchetti namespace, ma non sembra per essere il caso, sulla base delle domande e dei link sopra. Questo può essere fatto a tutti?
Non riesco ancora a credere che questo sia ancora il caso del moderno Python. Certamente rende definitive le parti principali per convenienza nel vostro pacchetto namespace abbastanza "difficile":/ –