[Python-3000] Should package __init__ files include pkgutil.extend_path?

Brett Cannon brett at python.org
Sun Sep 7 00:28:18 CEST 2008


On Sat, Sep 6, 2008 at 2:06 PM,  <skip at pobox.com> wrote:
> I'm trying to figure out how to install this dbm.sqlite module I have
> without overwriting the basic install.  My thought was to create a dbm
> package in site-packages then copy sqlite.py there.  That doesn't work
> though.  Modifying dbm.__init__.py to include this does:
>
>    import pkgutil
>    __path__ = pkgutil.extend_path(__path__, __name__)
>
> I'm wondering if all the core packages in 3.x should include the above in
> their __init__.py files.
>

Well, a side-effect of this is that all package imports will suddenly
spike the number of stat calls linearly to the number of entries on
sys.path.

Another option is to use a pth file that imports your module (as like
_dbm_sqlite.py or something) and have it, as a side-effect of
importing, set itself on dbm.

-Brett


More information about the Python-3000 mailing list