|
Rob Shinn
rob.shinn at gmail.com
Mon Jun 2 16:30:13 EDT 2008
I think you have to either install the ImportTest in your Python
site-packages directory or use apache.import_module(). If you wish to use
apache.import_module(), you can do something like this:
ImportTest=apache.import
_module('ImportTest','full-path-to-~/scratch-here/ImportTest')
TEST_CONSTANT=ImportTest.TEST_CONSTANT
Note that if you don't use apache.import_module(), you need to restart
Apache everytime you modify the ImportTest module.
HTH
On Mon, Jun 2, 2008 at 3:58 PM, hungrybackspace at gmail.com <
hungrybackspace at gmail.com> wrote:
> Greetings,
>
> We're having a bit of a time importing modules that aren't in the
> standard library while using mod_python on this particular server. We
> have had, however, success with other servers. We're trying to run a
> tiny application that looks like this:
>
>
> on the console side:
> ~/scratch/
> RunImportTest.py
> __init__.py
> ImportTest/
> ImportTest.py
> __init__.py
>
>
> ...and the web side:
> /home/httpd/html/beta/
> RunImportTestModPython.py
>
>
> Below, the contents of the three files:
>
> RunImportTest.py:
> =================
> from ImportTest.ImportTest import TEST_CONSTANT
>
> print TEST_CONSTANT
>
>
> RunImportTestModPython.py:
> ==========================
> from mod_python import apache
> from ImportTest.ImportTest import TEST_CONSTANT
>
> def handler(req):
> req.content_type = 'text/plain'
> req.write(TEST_CONSTANT)
> return apache.OK
>
>
> ImportTest/ImportTest.py:
> =========================
> TEST_CONSTANT = "success"
>
>
> Output from the import test from command line:
> ~/scratch> python RunImportTest.py
> success
>
> So we know the little program does indeed work. Here is the output
> from Apache via mod_python:
>
> ========================
> MOD_PYTHON ERROR
>
> ProcessId: 18704
> Interpreter: 'beta.company.com'
>
> ServerName: 'beta.company.com'
> DocumentRoot: '/home/httpd/html/beta'
>
> URI: '/RunImportTestModPython.py'
> Location: None
> Directory: '/home/httpd/html/beta/'
> Filename: '/home/httpd/html/beta/RunImportTestModPython.py'
> PathInfo: ''
>
> Phase: 'PythonHandler'
> Handler: 'RunImportTestModPython'
>
> Traceback (most recent call last):
>
> File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py",
> line 1537, in HandlerDispatch
> default=default_handler, arg=req, silent=hlist.silent)
>
> File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py",
> line 1202, in _process_target
> module = import_module(module_name, path=path)
>
> File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py",
> line 296, in import_module
> log, import_path)
>
> File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py",
> line 680, in import_module
> execfile(file, module.__dict__)
>
> File "/home/httpd/html/beta/RunImportTestModPython.py", line 2, in
> <module>
> from ImportTest.ImportTest import TEST_CONSTANT
>
> ImportError: No module named ImportTest.ImportTest
>
>
> MODULE CACHE DETAILS
>
> Accessed: Mon Jun 2 14:21:49 2008
> Generation: 0
>
> _mp_df6c4429391f4fb65dc56704a2c1e0e2 {
> FileName: '/home/httpd/html/beta/RunImportTestModPython.py'
> Instance: 1 [IMPORT]
> Generation: 0 [ERROR]
> Modified: Mon Jun 2 11:49:11 2008
> }
>
>
> ...and here's an .htaccess file we're using in the directory
> /home/httpd/html/beta, the directory that RunImportTestModPython.py is
> in:
> =========================
> Options Indexes FollowSymLinks MultiViews
> AddHandler mod_python .py
> PythonDebug On
> PythonHandler RunImportTestModPython
> PythonAutoReload On
> PythonPath "['/home/me/scratch', '/home/me/scratch/ImportTest',
> '/usr/lib/python2.5/', '/usr/lib/python2.5/lib-dynload/',
> '/usr/lib/python2.5/site-packages/']"
>
>
> ...where /home/me is the user directory referenced at the top of the
> message.
>
> It's quite likely we're overlooking something very simple--but this
> same setup works without hitch on another system (granted, versions of
> OS, Apache, mod_python and Python are slightly different...). This
> non-functioning setup is:
>
> * CentOS 5
> * Apache 2.2.8
> * PHP 5.2.6
> * Python 2.5.2
> * mod_python 3.3.1
> * cx_oracle 4.3.3
>
> some of those are kind of irrelevant for the specific application
> here, but there might be hidden conflicts that I'm not aware of. I
> have read some stuff about using mod_python's native import methods,
> and I'd very much like to use the standard python import method
> instead, as it preserves command-line execution without having to add
> a lot of overhead. And in fact, I shouldn't have to because this
> setup works on another server. Unfortunately, I can't simply use the
> other server...
>
> Hope this isn't all too much information--I'm very grateful for any
> help anyone may provide.
>
> many thanks,
> MC
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20080602/a4d0a3b2/attachment-0001.html
|