I have inherited a few Python scripts from someone who has left my employer. Some are meant to be run from Jython, others are not.
I’d like to add them to svn, but before I do I want to modify these files so that if a “requires Jython” file is run from python, the user gets a message like “please run with Jython” and the program exits.
(Warning: I am not very familiar with Python/Jython.)
I expect the simplest way to do this is create a file require-jython.py with the contents like:
if runtime.name != 'jython'
print "Please run with Jython"
exit(1)
and then “include/require”? this file (again I’m not an expert. bear with me here)
Can anyone spell out the steps for me?
What I have seen done is to try to import a module exclusive to a given version or implementation, and raise
ImportErrorif the module does not exist.Imagine that Jython (and not Python) has a module called
special, then you add:Notice that you make the ImportError exception more explicit, as opposed to simply raising it (and lead the user to believe that there was a problem with the module itself, as opposed to informing that the interpreter was improperly selected). I would give you a more concrete example of what module to import, but I am not at all familiar with Jython.
In other words, use duck typing for the module import: assume the import was made correctly but fail as soon as you cannot find the expected behaviour (this is what the
trystatement is supposed to be used for).Another way to check the interpreter is to use the
sysmodule (in Python – I don’t know if Jython has it):