WD NAS App Builder

All apps

Python 3.14.10-1

Python 3.14: replaces the NAS's own Python 3.9 as python3, with pip, venv and uv (Intel models)

Securitydevelopmentsystem

Security: Replaces WD's Python 3.9, which has had no security fixes since October 2025.

Download

NASSizeSHA256
My Cloud PR410051 MBDownload4d1d07fadb04695f…
My Cloud PR210051 MBDownloade31c04889cfeb2a7…
My Cloud DL410051 MBDownload4b4bde4f124748ce…
My Cloud DL210051 MBDownload96c8e47352756d1a…

Not available for: My Cloud EX4100, My Cloud EX2100, My Cloud EX2 Ultra, My Cloud Mirror (Gen 2), My Cloud (Gen 2), WD Cloud.

Easier: install it from the Store, which also updates it.

Makes Python 3.14 the NAS's python3, in place of WD's own Python 3.9, with pip, virtual environments (venv) and uv. It's a portable build of Python (python-build-standalone, the builds uv uses), depending only on the NAS's system library.

  • When the app starts (at every boot) it points /usr/bin/python3 at Python 3.14, and adds python3.14, pip3, pydoc3, uv and uvx. Stopping or removing the app puts WD's python3 back. WD's own files are never changed - only those links, which are in RAM anyway.
  • WD's scripts were checked before making this app: WD's Python has no extra packages, only the standard library, and the scripts that use it - wsdd (Windows network discovery), mysql_reset.py and a couple of one-line JSON reads - use nothing that's been removed since Python 3.9. Both compile with every warning treated as an error, and wsdd was run on 3.14. WD's boot scripts and wsdd start before the apps, so they always run on WD's own Python 3.9 anyway; only what WD runs later uses Python 3.14.
  • There's no plain python command: a few of WD's scripts ask for it, but they're Python 2 code that has never been able to run on OS5 - with a python they'd start and crash instead.
  • The management page can switch python3 back to WD's Python 3.9 (and back again) as a safety net - the choice is kept across reboots and reinstalls.

Packages

Install packages into a virtual environment, kept wherever you like - e.g. under /home/root (persistent with the Entware app) or on a share. Packages installed into the app's Python itself would be lost with its next update, so pip refuses that (add --break-system-packages to do it anyway):

python3 -m venv /home/root/venvs/myproject
/home/root/venvs/myproject/bin/pip install requests
/home/root/venvs/myproject/bin/python myscript.py

Or with uv, which also runs tools and single scripts with their own packages:

uv venv /home/root/venvs/myproject
uvx ruff check myscript.py
uv run --with requests myscript.py
  • Virtual environments use the app's Python, so they keep working across the app's updates within 3.14; a new line (e.g. 3.15) needs them made again.
  • The NAS has no compiler, so packages come from ready-built wheels - almost all popular packages have them (the NAS's glibc is 2.31, which manylinux_2_28 wheels suit).
  • Programs using curses (full-screen terminal programs) need a terminal database, which the NAS doesn't have: install Entware's ncurses-terminfo and set TERMINFO_DIRS=/opt/share/terminfo. Python's own interactive prompt doesn't need it.

Management page

The Python app's page in the NAS dashboard (Apps → Python) shows which Python python3 is, the app's and WD's versions, pip and uv, the commands the app has added, and which Python wsdd is running on. It switches python3 between the app's Python and WD's. Only NAS admins can use the page (see Management pages).

Updates come with new versions of the app (the NAS shows an alert when a new 3.14 release is out, checked weekly).