|
apocalypznow
apocalypznow at gmail.com
Wed Jul 12 14:54:37 EDT 2006
Thanks Graham.... I appreciate the clarity in your response. I made the
necessary changes, and here is what I get as a result:
Mod_python error: "PythonHandler vampire"
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/mod_python/apache.py", line
299, in HandlerDispatch
result = object(req)
File "/usr/lib/python2.3/site-packages/vampire/lookup.py", line 709,
in _handler
module = _import(req,file)
File "/usr/lib/python2.3/site-packages/vampire/lookup.py", line 54,
in _import
module = _moduleCache.importModule(name,directory,req)
File "/usr/lib/python2.3/site-packages/vampire/cache.py", line 316,
in importModule
execfile(file,module.__dict__)
File "/var/www/mod_python/forums/forum.py", line 8, in ?
ticket = vampire.importModule("ticket",
path=["/var/www/mod_python/lib"])
File "/usr/lib/python2.3/site-packages/vampire/cache.py", line 161,
in importModule
path = os.path.normpath(path)
File "/usr/lib/python2.3/posixpath.py", line 370, in normpath
initial_slashes = path.startswith('/')
AttributeError: 'list' object has no attribute 'startswith'
Graham Dumpleton wrote:
>
> On 12/07/2006, at 9:23 PM, Graham Dumpleton wrote:
>
>>>> Module importing with mod_vampire is not working. I get one of
>>>> several old copies of the python program I am importing!
>>>>
>>>> Here is the relevant section of my httpd.conf file:
>>>> Alias /forums "/var/www/mod_python/forums"
>>>> <Directory /var/www/mod_python/forums>
>>>> SetHandler python-program
>>>> PythonHandler vampire
>>>> PythonDebug On
>>>> Options -MultiViews -Indexes
>>>> PythonPath "['/var/www/mod_python/lib','/var/www/mod_python/
>>>> forums']+sys.path"
>
>
> When using Vampire, you shouldn't be listing handler directories in
> sys.path
> and if you want to use Vampire "import" hook or vampire.importModule()
> then directories targeted by them should also not be in sys.path. Thus,
> would nearly always when using Vampire use:
>
> PythonPath 'sys.path'
>
> This ensures that no extra directories are added to sys.path.
>
>>>> PythonOption VampireImportHooks On
>>>> </Directory>
>>>>
>>>> The python program in question "ticket.py" is in the /var/www/
>>>> mod_python/lib folder. I have also moved it to the /var/www/
>>>> mod_python/forums folder. The results are the same no matter where
>>>> it is. The calling program is in the /var/www/mod_python/ forums
>>>> folder, and it does this:
>>>>
>>>> import ticket
>>>> d = ticket.getData()
>
>
> Where in the calling program is this located? For the Vampire "import"
> hook to work, the "import" must be at global scope and executed on module
> import and must not be contained within a function which is only getting
> executed when a specific request arrives.
>
> If this is not done, then standard Python "import" mechanism would be
> getting used and thus you would see behaviour as I explained in first
> mail for when it is used.
>
> Graham
|