From: Samuele P. <ped...@bl...> - 2004-01-12 16:45:12
|
At 14:00 08.01.2004 -0500, Patrick Surry wrote: >Having trouble with package imports in jythonc, both jython 2.1 and >2.2a0. I've found various other people complaining of similar issues, but >haven't seen a good resolution - is it an unavoidable issue? in general yes, dynamic imports are hard for jythonc. >Simplest case I've found is this two-liner, foo.py: > >from xml.sax.drivers2.drv_xmlproc import create_parser >print create_parser() > >After jythonc via: > >d:/jython2-1a/jythonc --compiler c:/j2sdk1.4.2_03/bin/javac.exe --deep >--jar foo.jar foo.py > >and run via: > >c:/j2sdk1.4.2_03/bin/java -cp ./foo.jar;d:/jython2-1a/jython.jar foo > >it reports: > >ImportError: cannot import name xmlval > >If you use the slight variation: > >from xml.sax.drivers2 import drv_xmlproc >print drv_xmlproc.create_parser() > >you get: > >ImportError: cannot import name drv_xmlproc > >Any ideas? Should I just bail on the jython XML stuff and use java >built-in libraries instead? well xmlproc is a pure python parser, so a java one would be likely faster. About the problem: xmlval.py (part of xmlproc, which we got from PyXML although maybe we are the only ones kind of stressing it) contains: import urlparse,os,anydbm,string,cPickle,time (it's still in their CVS btw) anydbm does dynamic importing to find at least one of the *dbm modules. You can either remove from that line anything not really used in xmlval.py, or invoke jythonc asking to include dumbdbm jythonc ...your stuff... dumbdbm similar problems happen for example if trough encoding request one of the packages under encondings is referred. regards. |