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.
If possible please use the most recent version available of the Python implementation.
- 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 other parameter 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)
- Pyro requires the zlib module, 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.
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.