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
> > >
> > > **
> >
> >
> >


Reply via email to