The problem with Python is that path for searching modules is one for
each process and not one per thread or one per application.

This means if you use third part modules you should install them AS IF
web2py was not there and import them from web2py in the usual way.

If you want to make some modules part of an app (i.e. place them in
the modules/ folder of the app) you have to be careful. Not all
modules are suitable. In particular if the module consists of multiple
files they should import each other using only paths relative to the
folder where the importing file is located because the modules/ folder
IS NOT and CANNOT be added to the search path.

Massimo



On Feb 26, 5:46 am, Tiago Almeida <tiago.b.alme...@gmail.com> wrote:
> Allow me to hijack this thread for a related question.
>
> How do you usually import a module from a module. I've tried using
> local_import but I had problems (don't remember details) so I solved the
> problem by hardcoding the path like 'applications.<appname>/modules/...' but
> don't like it.
> Can local_import do this and I used it incorrectly?
>
> Thanks a lot in advance.
>
> Best regards,
> Tiago
> ------
>
> On Fri, Feb 26, 2010 at 2:11 AM, Thadeus Burgess <thade...@thadeusb.com>wrote:
>
> > Done.
>
> > -Thadeus
>
> > On Thu, Feb 25, 2010 at 7:06 PM, Jonathan Lundell <jlund...@pobox.com>
> > wrote:
> > > On Feb 25, 2010, at 4:19 PM, mr.freeze wrote:
>
> > >> Just do: dt = local_import('datatables')
>
> > > Thanks. Maybe the book should reflect this:
> >http://web2py.com/book/default/section/4/18
>
> > > (I'd make the change, but I'm a little fuzzy on the details.)
>
> > >> On Feb 25, 6:11 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
> > >>> I've made a module that does a nice job, if I do say so myself, of
> > encapsulating DataTables (I'll post something about it eventually).
>
> > >>> Since it's a module, I need to import it to my controller, which I'm
> > doing like so:
>
> > >>> import sys
> > >>> sys.path.append(request.folder)
> > >>> import modules.datatables as dt
>
> > >>> My question: is there a better way to manage this? At first I was
> > building the import path all the way from the web2py base, but I didn't want
> > to include the literal application name.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > "web2py-users" group.
> > > To post to this group, send email to web...@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > web2py+unsubscr...@googlegroups.com<web2py%2bunsubscr...@googlegroups.com>
> > .
> > > For more options, visit this group at
> >http://groups.google.com/group/web2py?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "web2py-users" group.
> > To post to this group, send email to web...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > web2py+unsubscr...@googlegroups.com<web2py%2bunsubscr...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/web2py?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to