|
Dominique.Holzwarth at ch.delarue.com
Dominique.Holzwarth at ch.delarue.com
Fri Mar 28 03:28:26 EDT 2008
Hi Graham
The following is the complete code of the 2 files.
WebGUI.py
********************************************************************************
from mod_python import apache
webEdit = apache.import_module("~/test/GUI/Edit/webEdit.py")
WebGUIMessage = "Hello from WebGUI.py"
class WebGUI:
def __init__(self):
attribute = 0
def index(req):
myClassObject = webEdit.WebEdit()
return myClassObject.myAttribute
********************************************************************************
webEdit.py
********************************************************************************
from mod_python import apache
webGUI = apache.import_module("~/test/GUI/WebGUI.py")
class WebEdit(webGUI.WebGUI):
def __init__(self):
self.myAttribute = 1
def index(req):
return webGUI.__dict__
********************************************************************************
The (more or less complete) error page looks like this:
URI: '/python/test/GUI/WebGUI.py'
Location: None
Directory: 'C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/python/'
Filename: 'C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\python\\test\\GUI\\WebGUI.py'
PathInfo: ''
Phase: 'PythonHandler'
Handler: 'mod_python.publisher'
Traceback (most recent call last):
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 1229, in _process_target
result = _execute_target(config, req, object, arg)
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 1128, in _execute_target
result = object(arg)
File "C:\Program Files\Python25\Lib\site-packages\mod_python\publisher.py", line 204, in handler
module = page_cache[req]
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 1059, in __getitem__
return import_module(req.filename)
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 296, in import_module
log, import_path)
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 680, in import_module
execfile(file, module.__dict__)
File "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\python\test\GUI\WebGUI.py", line 6, in <module>
webEdit = apache.import_module("~/test/GUI/Edit/webEdit.py")
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 296, in import_module
log, import_path)
File "C:\Program Files\Python25\Lib\site-packages\mod_python\importer.py", line 680, in import_module
execfile(file, module.__dict__)
File "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\python\test\GUI\Edit\webEdit.py", line 4, in <module>
class WebEdit(webGUI.WebGUI):
AttributeError: 'module' object has no attribute 'WebGUI'
If I omit the 'webEdit = apache.import_module("~/test/GUI/Edit/webEdit.py")' inside 'WebGUI.py' as you mentioned I get a:
File "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\python\test\GUI\WebGUI.py", line 19, in index
myClassObject = webEdit.WebEdit()
NameError: global name 'webEdit' is not defined
Error...
And if I omit the 'webGUI = apache.import_module("~/test/GUI/WebGUI.py")' inside 'webEdit.py' I get:
File "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\python\test\GUI\Edit\webEdit.py", line 4, in <module>
class WebEdit(webGUI.WebGUI):
NameError: name 'webGUI' is not defined
So that's why I thought I need to have both import statements...
-----Original Message-----
From: Graham Dumpleton [mailto:graham.dumpleton at gmail.com]
Sent: Donnerstag, 27. März 2008 20:52
To: Holzwarth, Dominique (Berne Bauhaus)
Cc: mod_python at modpython.org
Subject: Re: [mod_python] Module importing and classes
Does webGUI.py try and import webEdit and thus you have a circular import?
With PythonDebug On in configuration, what is the import dependency graph information that is included in HTTP error page response after the trace back information?
Graham
|