Error importing modules with mod_python
Diez B. Roggisch
deets at nospam.web.de
Mon Jul 21 13:50:39 EDT 2008
Aaron Scott wrote:
> 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.
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
More information about the Python-list
mailing list