### Navigation

- index
- next |
- previous |
- Pyro 4.23 documentation »

# Configuring Pyro

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

## Resetting the config to default values

`Pyro4.config.``reset`([useenvironment=True])

  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.

## Inspecting current config

To inspect the current configuration you have several options:

1. Access individual config items: `print(Pyro4.config.COMPRESSION)`

2. 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
       ...

3. Access the config as a dictionary: `Pyro4.config.asDict()`

4. Access the config string dump (used in #2): `Pyro4.config.dump()`

## Overview of Config Items

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.

### Navigation

- index
- next |
- previous |
- Pyro 4.23 documentation »