Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Module organization

0 views
Skip to first unread message

Lasse Vågsæther Karlsen

unread,
Sep 28, 2005, 6:54:38 AM9/28/05
to
I am slowly learning Python and I'm already starting to write some minor
modules for myself. Undoubtedly there are better modules available
either built-in or 3rd party that do the same as mine and much more but
I need to learn it one way or another anyway.

What I'm wondering about is module organization.

I created my own directory for storing my modules and added the full
path to this to PYTHONPATH (Windows XP platform).

This means that "import modulename" works for my modules now.

However, the name of my module is "db" or "database", a module name that
will likely conflict with other modules I might encounter later.

As such, I was thinking of doing the same that the "distutils" set of
modules have done, by creating a subdirectory and storing them there, so
I created a "lvk" directory in that directory of mine and moved the
module in there, but now "import lvk.modulename" doesn't find the module.

Is there a trick to this? Do I have to store my own modules beneath
C:\Python24\Lib? or can I use the organization I've tried just with some
minor fixes to make python locate my modules?

--
Lasse Vågsæther Karlsen
http://usinglvkblog.blogspot.com/
mailto:la...@vkarlsen.no
PGP KeyID: 0x2A42A1C2

Robert Wierschke

unread,
Sep 28, 2005, 7:28:15 AM9/28/05
to
Lasse Vågsæther Karlsen schrieb:

I'm also new to python. But I think the solution to your problem is:

make the directory - lvk - a python package

in order to do this you just add an file __ini__.py (two underscores
befor and after init)in the directory.
__init__.py can be empty or include some initialization for your package
or a docstring for this package

if you plan to use something like: from lvk import *

there must be a variable __all__ in this __init__.py, which refers to a
list of all modules that should be imported

as mentioned I'm new to python and this might be wrong but give it a try

bruno modulix

unread,
Sep 28, 2005, 7:30:49 AM9/28/05
to
Lasse Vågsæther Karlsen wrote:
> I am slowly learning Python and I'm already starting to write some minor
> modules for myself. Undoubtedly there are better modules available
> either built-in or 3rd party that do the same as mine and much more but
> I need to learn it one way or another anyway.
>
> What I'm wondering about is module organization.
>
> I created my own directory for storing my modules and added the full
> path to this to PYTHONPATH (Windows XP platform).
>
> This means that "import modulename" works for my modules now.
>
> However, the name of my module is "db" or "database", a module name that
> will likely conflict with other modules I might encounter later.
>
> As such, I was thinking of doing the same that the "distutils" set of
> modules have done, by creating a subdirectory and storing them there, so
> I created a "lvk" directory in that directory of mine and moved the
> module in there, but now "import lvk.modulename" doesn't find the module.

What you want is a package:
http://www.python.org/doc/current/tut/node8.html#SECTION008400000000000000000

> Is there a trick to this? Do I have to store my own modules beneath
> C:\Python24\Lib? or can I use the organization I've tried just with some
> minor fixes to make python locate my modules?

briefly put, add an (even empty) __init__.py file in your lvk directory,
and it should work fine (minus potential import problems in your
modules, but that should be easy to fix...)

HTH
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'on...@xiludom.gro'.split('@')])"

0 new messages