/root is always 100% full, since it is a squashed ROM containing the files that are built into the firmware.
The persistent writeable space is /overlay. And as noted Python is big.
There should be a line before "cannot install" with information about the error (e.g. "unknown package" means that opkg update did not complete properly, or you have the name wrong).