---
name: "pcp-python"
section: "1"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pcp-python"
---

# pcp-python(1)

run a python script using a preferred python variant

## NAME

**pcp-python** - run a python script using a preferred python variant

## SYNOPSIS

**pcp** **python** \[*SCRIPT* \[*ARG*\] ...\]

## DESCRIPTION

**pcp-python** has been replaced by [**pmpython**(1)](/pmpython/1.md) which is preferred, however **pcp-python** is still installed to provided backwards compatibility.

**pcp-python** provides a way to run python scripts using a customisable python binary, rather than embedding any particular version of python into each script.

This can be useful as it allows version-independent python code to be run anywhere. All python modules shipped with PCP support versions 2.6 and later (in the python2 series), and 3.3 and later (in the python3 release series).

Due to python monitoring and collecting scripts being relatively simple in PCP (not requiring new modules, language features, etc), it has been possible to ensure they work for all of the above python versions. Thus, it is common for PCP python scripts to use a "shebang" line that invokes **pcp-python** as follows:

```
#!/usr/bin/pcp python
```

This allows the custom setting to be injected instead of a hard-coded python version, while still allowing the user to override the python version as follows:

```
$ PCP_PYTHON_PROG=python3 /usr/bin/pcp python --version
Python 3.3.2
$ PCP_PYTHON_PROG=python2 /usr/bin/pcp python --version
Python 2.7.5
```

This is convenient for shipping identical scripts on multiple platforms, and for testing different python versions with the one script (e.g. in the case where multiple versions of python are installed, PCP\_PYTHON\_PROG can be set in the local environment to override the global setting).

By default, the value of PCP\_PYTHON\_PROG from */etc/pcp.conf* will be used. The default value of this configuration parameter is set depending on some heuristics about the target build platform. These heuristics favour the use of *python3* in all recent releases of PCP, for those platforms that support it.

## PCP ENVIRONMENT

Environment variables with the prefix **PCP\_** are used to parameterize the file and directory names used by PCP. On each installation, the file */etc/pcp.conf* contains the local values for these variables. The **$PCP\_CONF** variable may be used to specify an alternative configuration file, as described in [**pcp.conf**(5)](/pcp.conf/5.md).

## SEE ALSO

[**PCPIntro**(1)](/PCPIntro/1.md) and [**pcp**(1)](/pcp/1.md).
