import packet.module without importing packet.__init__ ?

Gelonida N gelonida at
Sun Sep 11 10:17:56 EDT 2011

Hi Steven,

Thanks again for your answer.

On 09/11/2011 06:51 AM, Steven D'Aprano wrote:
> Gelonida N wrote:

> In your example, you stated that kitchen explicitly imports kitchen.pans and
> kitchen.knives. So in that case, take it up with the designer of the
> kitchen package -- it was his decision to import them, just like he
> imported re and math and httplib. (For example.) 

Exactly. Thus my conclusion, that too many imports (just for commodity)
in might not be such a good idea if one wants to allow
leaf-only imports.
> If kitchen is your package, then it is your choice: if you want to have
> control over when sub-packages get imported, then don't automatically
> import them in 

Agreed. This is however my problem: Up to my understanding rpc4django
insists on putting code into

>> One package in question is a huge django application.
>> Within the package is one module defining some constants and tiny
>> functions, which I would like to reuse from some command line tools,
>> which should start quickly without loading any of the django specific
>> modules. (the startup penalty and the memory overhead would be noticable)
>> I am using rpc4django, which expects, that of the django
>> application exports some all rpc functions
>> which will basically import 95% of the django application and the entire
>> django frame work (none of which were required by my command tool,
>> support utility for this application)
>> I could of course create a separate package just for this tiny sub
>> module, but somehow it doesn't feel right to me.
> Why should it be a package? Just make it a stand-alone module.


> Or do something like this:
> my_app/
> +--  # lightweight, nearly empty
> +--
> +--
> +--
> +--  rpc/
>      +--  # huge, imports my_app.module1, my_app.module2, etc.
> then point rpc4django at my_app.rpc instead of my_app.

Up to my knowledge rpc4django just imports all __inits__ of all django
applications to find look for functions with a certain decorator.

I'm not sure, whether django allows nested appllications, but this might
be a solution.

More information about the Python-list mailing list