---
id: python
title: Python
sidebar_label: Python
---

## What

Display the currently active python version and virtualenv.
Supports conda, virtualenv and pyenv (if python points to pyenv shim).

## Sample Configuration

```json
{
  "type": "python",
  "style": "powerline",
  "powerline_symbol": "\uE0B0",
  "foreground": "#100e23",
  "background": "#906cff",
  "template": " \uE235 {{ .Full }} "
}
```

## Properties

| Name                   | Type      | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `home_enabled`         | `boolean` | display the segment in the HOME folder or not - defaults to `false`                                                                                                                                                                                                                                                                                                                                                                                                          |
| `fetch_virtual_env`    | `boolean` | fetch the name of the virtualenv or not - defaults to `true`                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `display_default`      | `boolean` | show the name of the virtualenv when it's default (`system`, `base`) or not - defaults to `true`                                                                                                                                                                                                                                                                                                                                                                             |
| `fetch_version`        | `boolean` | fetch the python version - defaults to `true`                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `missing_command_text` | `string`  | text to display when the command is missing - defaults to empty                                                                                                                                                                                                                                                                                                                                                                                                              |
| `display_mode`         | `string`  | <ul><li>`always`: the segment is always displayed</li><li>`files`: the segment is only displayed when one of the following files is present:<ul><li>`*.py`</li><li>`*.ipynb`</li><li>`pyproject.toml`</li><li>`venv.bak`</li><li>`venv`</li><li>`.venv`</li></ul></li><li>`environment`: the segment is only displayed when a virtual env is present (**default**)</li><li>`context`: the segment is only displayed when either `environment` or `files` is active</li></ul> |
| `version_url_template` | `string`  | a go [text/template][go-text-template] [template][templates] that creates the URL of the version info / release notes                                                                                                                                                                                                                                                                                                                                                        |

## Template ([info][templates])

:::note default template

```template
{{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }} {{ end }}{{ .Full }}{{ end }}
```

:::

### Properties

| Name     | Type     | Description                                        |
| -------- | -------- | -------------------------------------------------- |
| `.Venv`  | `string` | the virtual environment name (if present)          |
| `.Full`  | `string` | the full version                                   |
| `.Major` | `string` | major number                                       |
| `.Minor` | `string` | minor number                                       |
| `.Patch` | `string` | patch number                                       |
| `.URL`   | `string` | URL of the version info / release notes            |
| `.Error` | `string` | error encountered when fetching the version string |

[go-text-template]: https://golang.org/pkg/text/template/
[templates]: /docs/configuration/templates