Hi Carlos, Just another hint: did you try do load jcc.dll within the MOD_WSGI script? I recently wrote down some hints on typical pitfalls in the apache-extra pylucene wiki at http://code.google.com/a/apache-extras.org/p/pylucene-extra/wiki/PyLucene
try to call >> import ctypes >> ctypes.windll.LoadLibrary("jcc.dll") in your script. If that doesn't help to find the origin of your problem I'd start to look at mod_wsgi debugging opportunities to see where/why it fails. Regards, Thomas > -----Ursprüngliche Nachricht----- > Von: Carlos Ferreira [mailto:to.carlos.ferre...@gmail.com] > Gesendet: Samstag, 18. August 2012 02:09 > An: pylucene-dev@lucene.apache.org > Betreff: Re: DLL load failed: The specified module could not be found. from > jcc import _jcc > > Hi Thomas, > Thank you for your response. I don't believe it is a system path or missing dll > problem. As the example I provided shows it works when I invoke it from > the Python Shell within the command line that includes the statement > "import jcc". MOD_WSGI also works and shows my current path when I > invoke a test WSGI script. The test MOD_WSGI script fails however when I > include the "import jcc" statement. This seems like it is a easy to reproduce > problem. > > Your thought about not allowing it to be called within another process might > be right but need more info and it may not help since I am on Windows XP > which I understand doesn't support WSGIDaemonProcess would allow a > separate process to run. > > Is there anyone else at pylucene that might be able to help? Or maybe > point me to the patch that was proposed to see if that fixes the problem? > > Thanks for your help. > Carlos > > On Thu, Aug 16, 2012 at 12:05 AM, Thomas Koch <k...@orbiteam.de> > wrote: > > > Dear Carlos, > > haven't used mod_wsgi so far, but remember there was a patch submitted > > to the list related to mod_wsgi : > > > > > Von: Patrick J. McNerthney [mailto:pmcnerth...@ncircle.com] > > > Gesendet: Freitag, 6. Juli 2012 05:40 > > > An: pylucene-dev@lucene.apache.org > > > Betreff: Supporting mod_wsgi python sub-interpreters > > > > > > I would like to propose the attached patch to support the use of > > > python > > sub- > > > interpreters, which are used by mod_wsgi. If there is interest, I > > > can > > further > > > clarify. > > > > > > Pat > > > > That hasn't been discussed further, but maybe Pat can comment on what > > the patch was good for or what problem it solves? > > > > BTW, the error you encounter may not be related to the python > > interpreter not finding jcc.dll but rather that jcc.dll cannot be > > loaded in the current process - e.g. because of wrong path in > > environment. I can for example reproduce this by setting PATH=C:\ and > invoke python: > > > > Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit > > (Intel)] on > > win32 > > Type "help", "copyright", "credits" or "license" for more information. > > >>> import jcc > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > File > > > > "c:\Devel\Python27\lib\site-packages\jcc-2.13-py2.7-win32.egg\jcc\__in > > it__.p > > y", line 31, in <module> > > from jcc import _jcc > > ImportError: DLL load failed: Das angegebene Modul wurde nicht > gefunden. > > >>> > > > > A typical problem in not being able to import lucene/jcc is a missing > > DLL > > (msvcr71.DLL) which is required by the loaded DLL. Sometimes it helps > > to load the DLL directly - in a command shell (interpreter) > > environment for example a windows dialogue may popup and tell you > about the missing DLL. > > That may not work in a server process... Hope that helps. > > > > > > Regards, > > Thomas > > > > > -----Ursprüngliche Nachricht----- > > > Von: Carlos Ferreira [mailto:to.carlos.ferre...@gmail.com] > > > Gesendet: Donnerstag, 16. August 2012 04:17 > > > An: pylucene-dev@lucene.apache.org > > > Betreff: DLL load failed: The specified module could not be found. > > > from > > jcc > > > import _jcc > > > > > > Hi, Please help I am unable to get Pylucene working with JCC on > > > Apache > > > 2.22 using Mod_WSGI on Windows XP. > > > > > > > > > > > > *Works from Command Line* > > > > > > C:\python > > > > > > Python 2.7.1 (r271:86832, Nov 27 2010 18:30:46) [MSC v.1500 32 bit > > (Intel)] on > > > win32 > > > > > > >>> import jcc > > > > > > >>>from jcc import _jcc > > > > > > >>>dir (_jcc) > > > > > > [Boolean, Bye, CLASSPATH, .. > > > > > > > > > > > > Works from Command Line > > > > > > C:\python > > > c:\Python27\Lib\site-packages\JCC-2.13-py2.7-win32.egg\jcc\__init__. > > > py > > > > > > JCC C++/Python Java Native Interface Code Generator > > > > > > Usage: python m jcc.__main__ [options] [actions] > > > > > > > > > > > > *Fails with MOD_WSGI using a simple test script:* > > > > > > import os, sys > > > > > > sys.path.append('C:\Python27\Lib\site-packages\JCC-2.13-py2.7- > > > win32.egg\jcc.dll') > > > > > > sys.path.append('C:\Program Files\Java\jre6\bin\client\jvm.dll') > > > > > > > > > > > > def application(environ, start_response): > > > > > > import jcc > > > > > > from jcc import _jcc > > > > > > > > > > > > status = '200 OK' > > > > > > output = '' > > > > > > output += 'sys.version = %s\n' % repr(sys.version) > > > > > > output += 'sys.prefix = %s\n' % repr(sys.prefix) > > > > > > output += 'sys.path = %s\n' % repr(sys.path) > > > > > > output += 'wsgi.multithread = %s\n' % > > repr(environ['wsgi.multithread']) > > > > > > output += 'mod_wsgi.process_group = %s\n' % > > > repr(environ['mod_wsgi.process_group']) > > > > > > output += 'os.environ = %s \n' % repr(os.environ['Path']) > > > > > > > > > > > > response_headers = [('Content-type', 'text/plain'), > > > > > > ('Content-Length', str(len(output)))] > > > > > > start_response(status, response_headers) > > > > > > > > > > > > return [output] > > > > > > > > > > > > *Fails with error:* > > > > > > [Wed Aug 15 18:44:19 2012] [warn] mod_wsgi: Compiled for Python/2.7. > > > > > > [Wed Aug 15 18:44:19 2012] [warn] mod_wsgi: Runtime using > Python/2.7.1. > > > > > > [Wed Aug 15 18:44:19 2012] [notice] Apache/2.2.22 (Win32) > > > mod_wsgi/3.3 > > > Python/2.7.1 configured -- resuming normal operations > > > > > > [Wed Aug 15 18:44:19 2012] [notice] Server built: Jan 28 2012 > > > 11:16:39 > > > > > > [Wed Aug 15 18:44:19 2012] [notice] Parent: Created child process > > > 4596 > > > > > > [Wed Aug 15 18:44:19 2012] [warn] mod_wsgi: Compiled for Python/2.7. > > > > > > [Wed Aug 15 18:44:19 2012] [warn] mod_wsgi: Runtime using > Python/2.7.1. > > > > > > [Wed Aug 15 18:44:19 2012] [notice] Child 4596: Child process is > > > running > > > > > > [Wed Aug 15 18:44:19 2012] [notice] Child 4596: Acquired the start mutex. > > > > > > [Wed Aug 15 18:44:19 2012] [notice] Child 4596: Starting 64 worker > > threads. > > > > > > [Wed Aug 15 18:44:19 2012] [notice] Child 4596: Starting thread to > > > listen > > on > > > port 80. > > > > > > [Wed Aug 15 18:44:30 2012] [error] [client 127.0.0.1] mod_wsgi > > (pid=4596): > > > Exception occurred processing WSGI script 'C:/temp/wsgi_test.py'. > > > > > > [Wed Aug 15 18:44:30 2012] [error] [client 127.0.0.1] Traceback > > > (most > > recent > > > call last): > > > > > > [Wed Aug 15 18:44:30 2012] [error] [client 127.0.0.1] File > > > "C:/temp/wsgi_test.py", line 6, in application > > > > > > [Wed Aug 15 18:44:30 2012] [error] [client 127.0.0.1] import jcc > > > > > > [Wed Aug 15 18:44:30 2012] [error] [client 127.0.0.1] File > > > "c:\\Python27\\lib\\site-packages\\jcc-2.13-py2.7- > > > win32.egg\\jcc\\__init__.py", > > > line 31, in <module> > > > > > > [Wed Aug 15 18:44:30 2012] [error] [client 127.0.0.1] from jcc import > > > _jcc > > > > > > [Wed Aug 15 18:44:30 2012] [error] [client 127.0.0.1] ImportError: > > > DLL > > load > > > failed: The specified module could not be found. > > > > > > > > > > > > *I think Mod_WSGI is installed correctly because removing this from > > > the above test script:* > > > > > > import jcc > > > > > > from jcc import _jcc > > > > > > > > > > > > *Results correct output in the browser window:* > > > > > > sys.version = '2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 > > > 32 bit (Intel)]' > > > > > > sys.prefix = 'c:\\Python27' > > > > > > sys.path = > > > ['c:\\Python27\\lib\\site-packages\\south-0.7.3-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\django_admin_tools-0.4.0-py2.7.eg > > > g', 'c:\\Python27\\lib\\site-packages\\oauth2-1.5.170-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\httplib2-0.7.2-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\django_social_auth-0.6.0-py2.7.eg > > > g', > > > 'c:\\Python27\\lib\\site-packages\\python_openid-2.2.5-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\python_dateutil-1.5-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\distribute-0.6.24-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\django_chronograph-0.2.0.dev- > > > py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\pyofc2-0.1.5dev-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\anyjson-0.3.1-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\django_pagination-1.0.7-py2.7.egg > > > ', 'c:\\Python27\\lib\\site-packages\\gdata-2.0.17-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\flickrapi-1.4.2-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\threadpool-1.2.7-py2.7.egg', > > > 'c:\\Python27\\lib\\site-packages\\jcc-2.13-py2.7-win32.egg', > > > 'c:\\Python27\\lib\\site-packages\\lucene-3.6.0-py2.7-win32.egg', > > > 'c:\\Python27\\Lib', 'c:\\test\\git_repo\\src', > > > 'c:\\test\\git_repo\\src\\plunk4', 'C:\\Program > > > Files\\Java\\jdk1.6.0_26\\bin', 'C:\\Program > > > Files\\Java\\jdk1.6.0_26\\bin\\client', 'C:\\Program Files\\Apache > > Software > > > Foundation\\Apache2.2', 'C:\\WINDOWS\\system32\\python27.zip', > > > 'c:\\Python27\\DLLs', 'c:\\Python27\\lib\\plat-win', > > 'c:\\Python27\\lib\\lib- > > > tk', 'C:\\Program Files\\Apache Software > > > Foundation\\Apache2.2\\bin', 'c:\\Python27', > > > 'c:\\Python27\\lib\\site-packages', > > > 'C:\\Python27\\Lib\\site-packages\\JCC-2.13-py2.7-win32.egg\\jcc.dll > > > ', 'C:\\Program Files\\Java\\jre6\x08in\\client\\jvm.dll', > > > 'C:\\Python27\\Lib\\site-packages\\JCC-2.13-py2.7-win32.egg\\jcc.dll > > > ', 'C:\\Program Files\\Java\\jre6\x08in\\client\\jvm.dll'] > > > > > > wsgi.multithread = True > > > > > > mod_wsgi.process_group = '' > > > > > > os.environ = 'c:\\Python27\\lib\\site-packages\\jcc-2.13-py2.7- > > > > win32.egg;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\system > > > 32\\wbem;c:\\program > > > files\\common files\\roxio shared\\dllshared\\;c:\\program > > > files\\common files\\roxio shared\\10.0\\dllshared\\;C:\\Program > > > Files\\Java\\jdk1.6.0_26\\jre\\bin;C:\\Program > > > Files\\Java\\jdk1.6.0_26\\jre\\bin\\client;c:\\ant\\apache-ant- > > > 1.8.2\\bin;c:\\python27\\scripts;c:\\python27;c:\\program > > > files\\git\\cmd;c:\\program > > > > files\\ibm\\gsk8\\lib;C:\\PROGRA~1\\IBM\\SQLLIB\\BIN;C:\\PROGRA~1\\I > > > B > M\\SQLLIB\\FUNCTION;C:\\PROGRA~1\\IBM\\SQLLIB\\SAMPLES\\REPL;C:\\ > > > Program > > > Files\\MySQL\\MySQL Server 5.5\\bin;C:\\Program > > > > Files\\QuickTime\\QTSystem\\;c:\\Python27;C:\\WINDOWS\\system32\\Wi > > > ndowsPowerShell\\v1.0;C:\\Python27\\Lib\\site-packages\\JCC-2.13-py2 > > > .7- > > > win32.egg;' > > > > > > > > > > > > I think the problem has something to do with how paths are being > > > interpreted when the jcc script is run via command line versus when > > > it is > > run > > > inside the MOD_WSGI process. I believe it is inserting extra \\ in > > > the > > path > > > separator. So rather than c:\\python27\\Lib paths are being > > > interpreted > > as > > > c:\\\\python\\\\Lib > > > > > > > > > > > > Appreciate any help on this. I have been stuck for a few days now. > > > > > > > > > > > > Thanks. > > > > > > Carlos > > > > > > * * > > > *What version of the product are you using? On what operating > > > system?* > > > > > > lucene-3.6.0-py2.7-win32.egg > > > > > > JCC-2.13-py2.7-win32.egg > > > > > > Python 2.7.1 > > > > > > Windows XP 32 bit > > > Apache 2.2.2 > > > > > > ** > > > > > >