pyenv
Install pyenv with Python 3.14 for root, and optionally Home Assistant, ESPHome or Matter Server pre-releases.
pyenv.sh installs the Python build dependencies, runs the official pyenv
installer from https://pyenv.run, builds Python 3.14 and makes it the global
version. Three optional questions then install beta software on top.
| Run it | Inside the container or VM. On a Proxmox VE host confirm_not_pve_host warns and asks Continue anyway? (y/N) |
| Supported OS | Debian or Ubuntu (require_debian_like: Alpine and systems without apt-get exit with code 238) |
| Ports | None for pyenv. 8123 for Home Assistant, 6052 for ESPHome, when chosen |
| Source | tools/addon/pyenv.sh |
Run
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/pyenv.sh)"The script starts installing right away. There is no confirmation before the dependencies and pyenv are installed.
What it installs
| Item | Value |
|---|---|
| Packages | build-essential, libssl-dev, zlib1g-dev, libbz2-dev, libreadline-dev, libsqlite3-dev, curl, git, xz-utils, tk-dev, libxml2-dev, libxmlsec1-dev, libffi-dev, liblzma-dev, make, llvm, libjpeg-dev, libpcap-dev, libopenjp2-7, plus whichever variant the distribution ships of libncurses-dev, libtiff-dev and libturbojpeg0-dev |
| pyenv | ~/.pyenv (PYENV_ROOT). Skipped when the directory already exists |
| Shell setup | A # pyenv block appended to ~/.bashrc and ~/.profile unless they already mention PYENV_ROOT |
| Python | The latest 3.14 patch release, built with pyenv install -s 3.14 and selected with pyenv global 3.14 |
Prompts
All three questions default to no.
| Prompt | y does this |
|---|---|
Would you like to install Home Assistant Beta? <y/N> | Writes /etc/systemd/system/homeassistant.service, creates a virtual environment in /srv/homeassistant, installs psycopg2-binary and homeassistant with --pre, enables the service, prints the address (port 8123) and then runs hass in the foreground. Configuration directory: /root/.homeassistant |
Would you like to install ESPHome Beta? <y/N> | Creates a virtual environment in /srv/esphome, installs esphome with --pre, writes /srv/esphome/start.sh and /etc/systemd/system/esphomedashboard.service, enables and starts the service (port 6052), then replaces the script with a new shell |
Would you like to install Matter-Server (Beta)? <y/N> | Installs libcairo2-dev, libjpeg62-turbo-dev, libgirepository1.0-dev, libpango1.0-dev, libgif-dev, g++ and python-matter-server[server], and prints python -m matter_server.server as the start command. No service is created |
The script ends by starting a new shell (exec $SHELL) so that pyenv is
active.
No credentials are created.
Update
The script has no update path and installs no update_ helper. pyenv is
updated with its own pyenv update plugin, which the official installer sets
up.
Remove
The script has no uninstall path. Removing pyenv means deleting ~/.pyenv and
the # pyenv block from ~/.bashrc and ~/.profile by hand, plus any of the
optional services and /srv directories you installed.
Limits
- The Home Assistant step ends by running
hassin the foreground; the remaining questions are reached only if that process exits without an error. - The ESPHome step ends in
exec $SHELL. Answeryto ESPHome and the Matter Server question is never asked in that run. - The Home Assistant and ESPHome steps use
mkdirwithout-p. If/srv/homeassistantor/srv/esphomealready exists, the step fails. - pyenv is installed for the user running the script only.
- The optional installs are pre-releases (
pip install --pre).