Running on alternative Python implementations¶
Pyro is written in 100% pure Python which -theoretically- enables it to be used with any compatible Python implementation. There are a few gotchas however.
Note
If possible please use the most recent version available of the Python implementation.
Jython¶
- You’ll need to use Jython 2.7 or newer (2.5 is no longer supported by Pyro)
- The multiplexing server type (select/poll-based server) is not reliable on Jython. You can only use the threadpool server type.
- You cannot use the
otherparameter to the requestloop of a Threadpool server. The workaround is to spawn a separate thread for each socket that you need to listen to. (The name server does this for the broadcast server, if it detects that it is running on Jython)
IronPython¶
- Pyro requires the
zlibmodule, which is not included in older IronPython versions. IronPython 2.7 includes it by default. If you need to install it manually, get it from the developer. - IronPython cannot properly serialize exception objects, which could lead to problems when dealing with Pyro’s enhanced tracebacks. For now, Pyro contains a workaround for this IronPython bug.
Pypy¶
I haven’t used Pypy much let alone with Pyro, but it seems that at least the recent builds (1.9 and newer) of Pypy work fine with Pyro.