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
|