Error importing modules with mod_python

A

Aaron Scott

I've installed mod_python, and everything seems to be working, but it
fails when I try to import another file into the file that's actually
producing the output. I have these lines at the top of index.py:

from mod_python import apache
from storylab import *

.... and in the directory where index.py resides (/htdocs/python/), I
have a directory called "storylab". Inside that directory is
__init__.py. When I try to execute /htdocs/python/index.py, I get the
following error:

---

MOD_PYTHON ERROR
ProcessId: 828
Interpreter: 'localhost'
ServerName: 'localhost'
DocumentRoot: 'C:/htdocs'
URI: '/python/index.py'
Location: None
Directory: 'C:/htdocs/python/'
Filename: 'C:/htdocs/python/index.py'
PathInfo: ''
Phase: 'PythonHandler'
Handler: 'index'

Traceback (most recent call last):

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
1202, in _process_target
module = import_module(module_name, path=path)

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
296, in import_module
log, import_path)

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
680, in import_module
execfile(file, module.__dict__)

File "C:\htdocs\python\index.py", line 2, in <module>
from storylab import *

ImportError: No module named storylab

---

What am I doing wrong? Any insight would be greatly appreciated.

Thanks,
Aaron
 
D

Diez B. Roggisch

Aaron said:
I've installed mod_python, and everything seems to be working, but it
fails when I try to import another file into the file that's actually
producing the output. I have these lines at the top of index.py:

from mod_python import apache
from storylab import *

... and in the directory where index.py resides (/htdocs/python/), I
have a directory called "storylab". Inside that directory is
__init__.py. When I try to execute /htdocs/python/index.py, I get the
following error:

---

MOD_PYTHON ERROR
ProcessId: 828
Interpreter: 'localhost'
ServerName: 'localhost'
DocumentRoot: 'C:/htdocs'
URI: '/python/index.py'
Location: None
Directory: 'C:/htdocs/python/'
Filename: 'C:/htdocs/python/index.py'
PathInfo: ''
Phase: 'PythonHandler'
Handler: 'index'

Traceback (most recent call last):

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
1202, in _process_target
module = import_module(module_name, path=path)

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
296, in import_module
log, import_path)

File "C:\Python25\lib\site-packages\mod_python\importer.py", line
680, in import_module
execfile(file, module.__dict__)

File "C:\htdocs\python\index.py", line 2, in <module>
from storylab import *

ImportError: No module named storylab

You need to tell python that it should add the path your storylab-module is
residing in to the sys.path-list of module locations.

There are a bunch of ways to do so:

- in your main-script, import sys, and append the proper path to sys.path
- add a .pth-file into python's site-packages that points to the location
- set the environment variable PYTHONPATH
- use distutils or setuptools to proper install the module.

Google will help you to find additional information about the above
mentioned concepts.

Diez
 
G

Graham Dumpleton

I've installedmod_python, and everything seems to be working, but it
fails when I try to import another file into the file that's actually
producing the output. I have these lines at the top of index.py:

frommod_pythonimport apache
from storylab import *

... and in the directory where index.py resides (/htdocs/python/), I
have a directory called "storylab". Inside that directory is
__init__.py. When I try to execute /htdocs/python/index.py, I get the
following error:

---

MOD_PYTHONERROR
ProcessId:      828
Interpreter:    'localhost'
ServerName:     'localhost'
DocumentRoot:   'C:/htdocs'
URI:            '/python/index.py'
Location:       None
Directory:      'C:/htdocs/python/'
Filename:       'C:/htdocs/python/index.py'
PathInfo:       ''
Phase:          'PythonHandler'
Handler:        'index'

Traceback (most recent call last):

  File "C:\Python25\lib\site-packages\mod_python\importer.py", line
1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "C:\Python25\lib\site-packages\mod_python\importer.py", line
1202, in _process_target
    module = import_module(module_name, path=path)

  File "C:\Python25\lib\site-packages\mod_python\importer.py", line
296, in import_module
    log, import_path)

  File "C:\Python25\lib\site-packages\mod_python\importer.py", line
680, in import_module
    execfile(file, module.__dict__)

  File "C:\htdocs\python\index.py", line 2, in <module>
    from storylab import *

ImportError: No module named storylab

You can't put Python packages in same directory as handler scripts
managed by mod_python. See documentation for import_module() in:

http://www.modpython.org/live/current/doc-html/pyapi-apmeth.html

Graham
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top