From: David H. <Dav...@sa...> - 2005-08-18 19:51:32
|
Works fine for me in Jython 2.2a1: Jython 2.2a1 on java1.4.2_04 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> import junit.framework.TestCase >>> -----Original Message----- From: jyt...@li... [mailto:jython-users-admi= n...@li...] On Behalf Of Fabio Zadrozny Sent: Thursday, August 18, 2005 3:33 PM To: Jeff Emanuel Cc: jyt...@li... Subject: Re: [Jython-users] Jython ClassLoader problems when adding jar = to sys.path Hi, this is not really a syntax error... actually, this import below is just an example (that I think should work= ), were I really have the problem is something much more dynamic, where = I do the import of the module dynamically and then, do a dir in the foun= d module / class to get the attributes, and then get the attribute to di= scover info on it, such as if it is a class or a method, etc. So, I call something like Find('junit.framework.TestCase') -- see the co= de below -- and it should return the class definition, but what happens = is the traceback (just below), because I can import the package junit.fr= amework, but I cannot do getattr(mod, 'TestCase') in it (which is weird,= because if I do a dir in it, it appears there...). Also, the same code = works without any problems in python, and works if I do add it to the cl= asspath before, but not if I add it only to the sys.path (and that's the= only way I see to do it if I want to use jython for it, otherwise, I wo= uld have to do a custom classloader myself... -------------------------- Traceback (innermost last): File "D:\dev_programs\eclipse_3\eclipse\workspace\org.python.pydev\PySrc\jyim= portsTipper.py", line 317, in ? File "D:\dev_programs\eclipse_3\eclipse\workspace\org.python.pydev\PySrc\jyim= portsTipper.py", line 43, in Find AttributeError: java package 'junit.framework' has no attribute 'TestCas= e' --------------------------- def _imp(name): try: return __import__(name) except: if '.' in name: sub =3D name[0:name.rfind('.')] return _imp(sub) else: s =3D 'Unable to import module: %s - sys.path: %s' % (str(na= me), sys.path) raise RuntimeError(s) def Find( name ): mod =3D _imp(name) components =3D name.split('.') for comp in components[1:]: mod =3D getattr(mod, comp) return mod Thanks, Fabio Jeff Emanuel wrote: > Your import syntax is incorrect. import similar but different from > Java import. If you want TestCase available without the full package > name, then import it like this: > > from junit.framework import TestCase > tc=3DTestCase() > > If you want to use TestCase with full qualification, then you need > only import junit: > > import junit > tc=3Djunit.framework.TestCase() > > You can go halfway, too: > > from junit import framework > tc=3Dframework.TestCase() > > > > Fabio Zadrozny wrote: > >> Hi, I'm having some problems with jython not finding my classes if >> they are not defined in the classpath, but just later added to the >> sys.path. In my case, I do not have the information before the run. >> To give an example of what happens: >> >> import sys >> sys.path.insert(1, r"C:\bin\eclipse310\plugins >> \org.junit_3.8.1\junit.jar" ) >> >> import junit.framework >> print dir(junit.framework) #shows the TestCase class here >> >> import junit.framework.TestCase >> >> raises the error: >> Traceback (innermost last): >> File "<console>", line 1, in ? >> ImportError: No module named TestCase >> >> if I set the classpath to point to the jar above before the run, it >> works. The problem seems to be the classloader jython is using, as it= >> seems it does not process new entries to the sys.path (only seems to >> process those that are added to the classpath at the start of the >> program). >> >> (I did this tests with jython 2.1, so, if it is already fixed, please= >> let me know) >> >> So, is this correct? Are there any plans to have it fixed? >> >> And the really strange part (for me)... why does the 'dir' above >> bring me the correct things, and when I actually go for it, I get an = error? >> >> Thanks, >> >> Fabio >> > > -- Fabio Zadrozny ------------------------------------------------------ Software Developer ESSS - Engineering Simulation and Scientific Software www.esss.com.br PyDev - Python Development Enviroment for Eclipse pydev.sf.net pydev.blo= gspot.com ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO Septe= mber 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices A= gile & Plan-Driven Development * Managing Projects & Teams * Testing & Q= A Security * Process Improvement & Measurement * http://www.sqe.com/bsce= 5sf _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |
From: David H. <Dav...@sa...> - 2005-08-18 20:16:32
|
Actually, junit.jar was on my Java classpath. Not putting junit.jar on my Java classpath, but putting it in sys.path, = doesn't work. I can't import the package nor the class.=20 -----Original Message----- From: jyt...@li... = [mailto:jyt...@li...] On Behalf Of Alexey N. = Solofnenko Sent: Thursday, August 18, 2005 3:58 PM To: jyt...@li... Subject: Re: [Jython-users] Jython ClassLoader problems when adding jar = to sys.path Did it work before updated sys.path? David Handy wrote: > Works fine for me in Jython 2.2a1: > > Jython 2.2a1 on java1.4.2_04 (JIT: null) Type "copyright", "credits"=20 > or "license" for more information. > =20 >>>> import junit.framework.TestCase >>>> >>>> =20 -- ------------------------------------------------------------------------ / Alexey N. Solofnenko home: http://trelony.cjb.net/ / ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle = Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & = QA Security * Process Improvement & Measurement * = http://www.sqe.com/bsce5sf _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Alexey N. S. <A.S...@md...> - 2005-08-18 19:58:23
|
Did it work before updated sys.path? David Handy wrote: > Works fine for me in Jython 2.2a1: > > Jython 2.2a1 on java1.4.2_04 (JIT: null) > Type "copyright", "credits" or "license" for more information. > >>>> import junit.framework.TestCase >>>> >>>> -- ------------------------------------------------------------------------ / Alexey N. Solofnenko home: http://trelony.cjb.net/ / |