Pyro can be configured using several configuration items. The current configuration is accessible from the Pyro4.config object, it contains all config items as attributes. You can read them and update them to change Pyro’s configuration. (usually you need to do this at the start of your program). For instance, to enable message compression and change the server type, you add something like this to the start of your code:
Pyro4.config.COMPRESSION = True
Pyro4.config.SERVERTYPE = "multiplex"
You can also set them outside of your program, using environment variables from the shell. To avoid conflicts, the environment variables have a PYRO_ prefix. This means that if you want to change the same two settings as above, but by using environment variables, you would do something like:
$ export PYRO_COMPRESSION=true
$ export PYRO_SERVERTYPE=multiplex
(or on windows:)
C:\> set PYRO_COMPRESSION=true
C:\> set PYRO_SERVERTYPE=multiplex
Resets the configuration items to their builtin default values. If useenvironment is True, it will overwrite builtin config items with any values set by environment variables. If you don’t trust your environment, it may be a good idea to reset the config items to just the builtin defaults (ignoring any environment variables) by calling this method with useenvironment set to False. Do this before using any other part of the Pyro library.
To inspect the current configuration you have several options:
Access individual config items: print(Pyro4.config.COMPRESSION)
Dump the config in a console window: python -m Pyro4.configuration This will print something like:
Pyro version: 4.6
Loaded from: E:\Projects\Pyro4\src\Pyro4
Active configuration settings:
AUTOPROXY = True
COMMTIMEOUT = 0.0
COMPRESSION = False
...
Access the config as a dictionary: Pyro4.config.asDict()
Access the config string dump (used in #2): Pyro4.config.dump()
config item | type | default | meaning |
---|---|---|---|
AUTOPROXY | bool | True | Enable to make Pyro automatically replace Pyro objects by proxies in the method arguments and return values of remote method calls. Doesn’t work with marshal serializer. |
COMMTIMEOUT | float | 0.0 | network communication timeout in seconds. 0.0=no timeout (infinite wait) |
COMPRESSION | bool | False | Enable to make Pyro compress the data that travels over the network |
DETAILED_TRACEBACK | bool | False | Enable to get detailed exception tracebacks (including the value of local variables per stack frame) |
DOTTEDNAMES | bool | False | Server side only: Enable to support object traversal using dotted names (a.b.c.d) |
HMAC_KEY | bytes | None | Shared secret key to sign all communication messages |
HOST | str | localhost | Hostname where Pyro daemons will bind on |
MAX_MESSAGE_SIZE | int | 0 | Maximum size in bytes of the messages sent or received on the wire. If a message exceeds this size, a ProtocolError is raised. |
NS_HOST | str | equal to HOST | Hostname for the name server |
NS_PORT | int | 9090 | TCP port of the name server |
NS_BCPORT | int | 9091 | UDP port of the broadcast responder from the name server |
NS_BCHOST | str | None | Hostname for the broadcast responder of the name sever |
NATHOST | str | None | External hostname in case of NAT |
NATPORT | int | None | External port in case of NAT |
BROADCAST_ADDRS | str | <broadcast>, 0.0.0.0 | List of comma separated addresses that Pyro should send broadcasts to (for NS lookup) |
ONEWAY_THREADED | bool | True | Enable to make oneway calls be processed in their own separate thread |
POLLTIMEOUT | float | 2.0 | For the multiplexing server only: the timeout of the select or poll calls |
SERVERTYPE | str | thread | Select the Pyro server type. thread=thread pool based, multiplex=select/poll based |
SOCK_REUSE | bool | False | Should SO_REUSEADDR be used on sockets that Pyro creates. |
PREFER_IP_VERSION | int | 4 | The IP address type that is preferred (4=ipv4, 6=ipv6, 0=let OS decide). |
THREADING2 | bool | False | Use the threading2 module if available instead of Python’s standard threading module |
THREADPOOL_MINTHREADS | int | 4 | For the thread pool server: minimum amount of worker threads to be spawned |
THREADPOOL_MAXTHREADS | int | 50 | For the thread pool server: maximum amount of worker threads to be spawned |
THREADPOOL_IDLETIMEOUT | float | 2.0 | For the thread pool server: number of seconds to pass for an idle worker thread to be terminated |
FLAME_ENABLED | bool | False | Should Pyro Flame be enabled on the server |
SERIALIZER | str | serpent | The wire protocol serializer to use for clients/proxies (one of: serpent, json, marshal, pickle) |
SERIALIZERS_ACCEPTED | set | json,marshal, serpent | The wire protocol serializers accepted in the server/daemon. Use comma separated string for initial config, will be a set after initialization. |
LOGWIRE | bool | False | If wire-level message data should be written to the logfile (you may want to disable COMPRESSION) |
There are two special config items that are only available as environment variable settings. This is because they are used at module import time (when the Pyro4 package is being imported). They control Pyro’s logging behavior:
environment variable | type | default | meaning |
---|---|---|---|
PYRO_LOGLEVEL | string | not set | The log level to use for Pyro’s logger (DEBUG, WARN, ...) See Python’s standard logging module for the allowed values. If it is not set, no logging is being configured. |
PYRO_LOGFILE | string | pyro.log | The name of the log file. Use {stderr} to make the log go to the standard error output. |