# pypy

## SYNOPSIS

`pypy` [options] [`-c` cmd|`-m` mod|file.py|`-`] [arg...]

## OPTIONS

`-i` | Inspect interactively after running script.
`-O` | Skip assert statements.
`-OO` | Remove docstrings when importing modules in addition to `-O`.
`-c CMD` | Program passed in as `CMD` (terminates option list).
`-S` | Do not `import site` on initialization.
`-s` | Don’t add the user site directory to sys.path.
`-u` | Unbuffered binary `stdout` and `stderr`.
`-h, --help` | Show a help message and exit.
`-m MOD` | Library module to be run as a script (terminates option list).
`-W ARG` | Warning control (arg is action:message:category:module:lineno).
`-E` | Ignore environment variables (such as `PYTHONPATH`).
`-B` | Disable writing bytecode (`.pyc`) files.
`--version` | Print the PyPy version.
`--info` | Print translation information about this PyPy executable.
`--jit ARG` | Low level JIT parameters. Mostly internal. Run `--jit help` for more information.

## ENVIRONMENT

`PYTHONPATH`
  Add directories to pypy’s module search path. The format is the same as shell’s `PATH`.
`PYTHONSTARTUP`
  A script referenced by this variable will be executed before the first prompt is displayed, in interactive mode.
`PYTHONDONTWRITEBYTECODE`
  If set to a non-empty value, equivalent to the `-B` option. Disable writing `.pyc` files.
`PYTHONINSPECT`
  If set to a non-empty value, equivalent to the `-i` option. Inspect interactively after running the specified script.
`PYTHONIOENCODING`
  If this is set, it overrides the encoding used for stdin/stdout/stderr. The syntax is encodingname:errorhandler The errorhandler part is optional and has the same meaning as in str.encode.
`PYTHONNOUSERSITE`
  If set to a non-empty value, equivalent to the `-s` option. Don’t add the user site directory to sys.path.
`PYTHONWARNINGS`
  If set, equivalent to the `-W` option (warning control). The value should be a comma-separated list of `-W` parameters.
`PYPYLOG`

  If set to a non-empty value, enable logging, the format is:

  fname or +fname
    logging for profiling: includes all `debug_start`/`debug_stop` but not any nested `debug_print`. fname can be `-` to log to stderr. The +fname form can be used if there is a : in fname
  `:`fname
    Full logging, including `debug_print`.
  prefix`:`fname
    Conditional logging. Multiple prefixes can be specified, comma-separated. Only sections whose name match the prefix will be logged.

  `PYPYLOG=jit-log-opt,jit-backend:logfile` will generate a log suitable for jitviewer, a tool for debugging performance issues under PyPy.

`PYPY_IRC_TOPIC`
  If set to a non-empty value, print a random #pypy IRC topic at startup of interactive mode.

PyPy’s default `incminimark` garbage collector is configurable through several environment variables:

`PYPY_GC_NURSERY`
  The nursery size. Defaults to 1/2 of your cache or `4M`. Small values (like 1 or 1KB) are useful for debugging.
`PYPY_GC_NURSERY_CLEANUP`
  The interval at which nursery is cleaned up. Must be smaller than the nursery size and bigger than the biggest object we can allotate in the nursery.
`PYPY_GC_INCREMENT_STEP`
  The size of memory marked during the marking step. Default is size of nursery times 2. If you mark it too high your GC is not incremental at all. The minimum is set to size that survives minor collection times 1.5 so we reclaim anything all the time.
`PYPY_GC_MAJOR_COLLECT`
  Major collection memory factor. Default is `1.82`, which means trigger a major collection when the memory consumed equals 1.82 times the memory really used at the end of the previous major collection.
`PYPY_GC_GROWTH`
  Major collection threshold’s max growth rate. Default is `1.4`. Useful to collect more often than normally on sudden memory growth, e.g. when there is a temporary peak in memory usage.
`PYPY_GC_MAX`
  The max heap size. If coming near this limit, it will first collect more often, then raise an RPython MemoryError, and if that is not enough, crash the program with a fatal error. Try values like `1.6GB`.
`PYPY_GC_MAX_DELTA`
  The major collection threshold will never be set to more than `PYPY_GC_MAX_DELTA` the amount really used after a collection. Defaults to 1/8th of the total RAM size (which is constrained to be at most 2/3/4GB on 32-bit systems). Try values like `200MB`.
`PYPY_GC_MIN`
  Don’t collect while the memory size is below this limit. Useful to avoid spending all the time in the GC in very small programs. Defaults to 8 times the nursery.
`PYPY_GC_DEBUG`
  Enable extra checks around collections that are too slow for normal use. Values are `0` (off), `1` (on major collections) or `2` (also on minor collections).

## SEE ALSO

python(1)