[mod_python] database connection

Julien Cigar jcigar at ulb.ac.be
Sun Oct 16 07:05:11 EDT 2005


Graham Dumpleton wrote:

>
> On 16/10/2005, at 7:42 PM, Julien Cigar wrote:
>
>> Graham Dumpleton wrote:
>>
>>> A comment on something else in your example first.
>>>
>>>> pageAction1 = apache.import_module('pages/action1')
>>>
>>>
>>>
>>> I wouldn't rely rely on being able to specific '/' in the module 
>>> name as
>>> argument. The documentation only mentions that '.' can be used if
>>> needing to reference a subcomponent of a package. What you are doing is
>>> relying on a strange quirk of the implementation and in mod_python 3.3
>>> if the module loading system is overhauled there may be no guarantee
>>> that it would work the same. You could always campaign though that it
>>> is a useful future that should be maintained but documented. :-)
>>>
>>> BTW, does the "pages" directory actually have an "__init__.py" file. I
>>> think what you are doing doesn't require it to, but wanted to check if
>>> you do have it or not.
>>>
>> My directory structure looks like this :
>> index.py
>> config.cfg
>> config.py
>> pages/page1.py
>> pages/page2.py
>> pages/page3.py
>> ...
>>
>> My "pages" directory doesn't contain an __init__.py file (should I ?)
>> I don't understand what's wrong with 
>> apache.import_module(pages/page1.py) .. ? I always done like this :)
>> Is it specific to mod_python ? I mean can you import pages/page1.py 
>> with the classic Pyhon import ?
>
>
> You can't use '/' when using the "import" statement in classic Python.
> Ie., can't do:
>
>   import pages/page1
>
> You can use '.', ie.,
>
>   import pages.page1
>
> But then this is a package import and the "pages" directory needs to be
> set up as a package, ie., it must contain an "__init__.py" file in it,
> even if "__init__.py" has nothing in it.
>
> Similarly, if you use the __import__ builtin function, you can't use '/',
> ie., can't do:
>
>   page1 = __import__("pages/page1")
>
> but can do:
>
>   page1 = __import__("pages.page1")
>
> In other words, that you can specify a '/' like you are is quite specific
> to the current mod_python implementation of apache.import_module(). Well,
> that is what I thought ......
>
> At this point I am a bit confused as I can't find anything in the 
> mod_python
> code which would even allow '/' to work. When I even try using it on my
> platform, Python throws an exception:
>
>   ImportError: No module named pages/page1
>
> What version of mod_python are you using, what version of Python and what
> platform? I don't understand how it could be working for you.
>
> Graham
>
I'm using mod_python version 3.1.3 on a Debian Linux platform (kernel 
2.6.12) with Python 2.3
A small piece of my code can be found on 
http://rafb.net/paste/results/9sjUSi95.html




More information about the Mod_python mailing list