I never noticed wx.Execute before… how cute!.. you learn something every day, I guess.
Anyways, “echo” is not a program in Windows, but a simple shell command. So you have to execute it through the shell, of course.
>>> import wx
>>> app = wx.App()
>>> wx.Execute('echo hello')
>>> wx.Execute('cmd /c echo hello')
The same applies to “dir”, “cd”, “set” and all the others shell commands. On the other hand, if you have the name (absolute/relative path, or just the name, really, if it is already in your system path) of a real executable program…
>>> wx.Execute('calc') # this will open calc.exe
The same would apply to Python’s subprocess, of course. Shell commands can be executed only by a shell instance.