From: Christian J. <chr...@gm...> - 2006-07-19 10:11:27
|
Hi there, I would like to know what you think is the best way to recognize - right at the beginning of a script -, whether the code is run by Jython or pure Python interpreter, because I will get ImportError when Python sees the "import java" lines etc. (also if the script is part of a package and another module is imported) Right now I am wrapping into a try ... except ImportError statement, but that's not an ideal way to solve this problem. What I need is a serious information source, for example from some sys attribute, that gives me a string containing the word "Jython" or something like that. One possibility I also found, was to check for sys.platform which gives back "Java..." when working with the Jython core. For example one could test like this: if 'Java' in sys.platform: # import of java api classes goes here But I don't know, if that would be reliable. How do you handle this type of problem? Thanks for any information. -- Best Regards Christian Junker |
From: Frank W. <fwi...@gm...> - 2006-07-19 16:31:54
|
On 7/19/06, Christian Junker <chr...@gm...> wrote: > Hi there, > > I would like to know what you think is the best way to recognize - > right at the beginning of a script -, whether the code is run by > Jython or pure Python interpreter, because I will get ImportError when > Python sees the "import java" lines etc. (also if the script is part > of a package and another module is imported) > > Right now I am wrapping into a try ... except ImportError statement, > but that's not an ideal way to solve this problem. What I need is a > serious information source, for example from some sys attribute, that > gives me a string containing the word "Jython" or something like that. > One possibility I also found, was to check for sys.platform which > gives back "Java..." when working with the Jython core. > For example one could test like this: > if 'Java' in sys.platform: > # import of java api classes goes here > > But I don't know, if that would be reliable. > > How do you handle this type of problem? Thanks for any information. In testing code we do this most often: import sys if sys.platform.startswith('java'): ... I've never seen it start with a capital 'J' -- do you really get that? however, for production, I prefer to segregate jython-only code from any-python code and use some sort of configuration to specify what I am using. -Frank |
From: Mike H. <hos...@gm...> - 2006-07-19 16:44:13
|
On 7/19/06, Frank Wierzbicki <fwi...@gm...> wrote: > In testing code we do this most often: > > import sys > if sys.platform.startswith('java'): > ... > > I've never seen it start with a capital 'J' -- do you really get that? > I do something similar: import sys if sys.platform.startswith('java'): JAVA = 1 else: JAVA=0 Then, when I have to do something Java-specific, I use that JAVA variable. -- Mike Hostetler http://mike.hostetlerhome.com/ |
From: Jeff E. <jem...@fr...> - 2006-07-19 16:35:19
|
How about this? import sys isJython = hasattr(sys,'classLoader') Christian Junker wrote: > Hi there, > > I would like to know what you think is the best way to recognize - > right at the beginning of a script -, whether the code is run by > Jython or pure Python interpreter, because I will get ImportError when > Python sees the "import java" lines etc. (also if the script is part > of a package and another module is imported) > > Right now I am wrapping into a try ... except ImportError statement, > but that's not an ideal way to solve this problem. What I need is a > serious information source, for example from some sys attribute, that > gives me a string containing the word "Jython" or something like that. > One possibility I also found, was to check for sys.platform which > gives back "Java..." when working with the Jython core. > For example one could test like this: > if 'Java' in sys.platform: > # import of java api classes goes here > > But I don't know, if that would be reliable. > > How do you handle this type of problem? Thanks for any information. > |
From: Raghuram D. <ra...@sy...> - 2006-07-19 20:11:37
|
This may be somewhat off track. But shouldn't sys.platform be returning the actual platform (as returned by cpython)? Thanks, Raghu. Mike Hostetler wrote: > On 7/19/06, Frank Wierzbicki <fwi...@gm...> wrote: >> In testing code we do this most often: >> >> import sys >> if sys.platform.startswith('java'): >> ... >> >> I've never seen it start with a capital 'J' -- do you really get that? >> > I do something similar: > > import sys > > if sys.platform.startswith('java'): > JAVA = 1 > else: > JAVA=0 > > Then, when I have to do something Java-specific, I use that JAVA variable. > |
From: Samuele P. <ped...@st...> - 2006-07-19 20:19:56
|
Raghuram Devarakonda wrote: > This may be somewhat off track. But shouldn't sys.platform be returning > the actual platform (as returned by cpython)? this has been debated many times, there are other ways to get that information. Java hides enough of the underlying platform that it is a "platform" in itself. For example assumptions like platform == win32 _winreg is loadable would not be valid. > > Thanks, > Raghu. > > Mike Hostetler wrote: > >>On 7/19/06, Frank Wierzbicki <fwi...@gm...> wrote: >> >>>In testing code we do this most often: >>> >>>import sys >>>if sys.platform.startswith('java'): >>> ... >>> >>>I've never seen it start with a capital 'J' -- do you really get that? >>> >> >> I do something similar: >> >>import sys >> >>if sys.platform.startswith('java'): >> JAVA = 1 >>else: >> JAVA=0 >> >>Then, when I have to do something Java-specific, I use that JAVA variable. >> > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Raghuram D. <ra...@sy...> - 2006-07-19 20:22:56
|
Thanks. I just wanted to get it clarified. Raghu. Samuele Pedroni wrote: > Raghuram Devarakonda wrote: >> This may be somewhat off track. But shouldn't sys.platform be >> returning the actual platform (as returned by cpython)? > > this has been debated many times, there are other ways to get that > information. Java hides enough of the underlying platform that it is > a "platform" in itself. For example assumptions like platform == win32 > _winreg is loadable would not be valid. > > >> >> Thanks, >> Raghu. >> >> Mike Hostetler wrote: >> >>> On 7/19/06, Frank Wierzbicki <fwi...@gm...> wrote: >>> >>>> In testing code we do this most often: >>>> >>>> import sys >>>> if sys.platform.startswith('java'): >>>> ... >>>> >>>> I've never seen it start with a capital 'J' -- do you really get that? >>>> >>> >>> I do something similar: >>> >>> import sys >>> >>> if sys.platform.startswith('java'): >>> JAVA = 1 >>> else: >>> JAVA=0 >>> >>> Then, when I have to do something Java-specific, I use that JAVA >>> variable. >>> >> >> >> ------------------------------------------------------------------------- >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to >> share your >> opinions on IT & business topics through brief surveys -- and earn cash >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> _______________________________________________ >> Jython-users mailing list >> Jyt...@li... >> https://lists.sourceforge.net/lists/listinfo/jython-users > > |