Ok, I've done some investigations, and it's not LuaRT related. It caused me a lot of headaches !
In fact, Python on Windows will detect if it is executed with stdout, stderr and stdin redirected.
In this case (when using LuaRT Pipe object), the python interpreter don't send anything to stdout, only to stderr.
Except if you set the -i flag when executing the python interpreter.
It's a very strange behaviour if you ask me...
So here is the solution :
-- force python to run in interactive mode even if stdout, stderr and stdin are redirected to pipe
local pipe = sys.Pipe("python.exe -i")
-- python interpreter prints to stderr when its output is redirected to pipe
print(pipe:readerror(500))
-- execute the python command: print('Hello World !')
pipe:write("print('Hello World !')\n")
-- prints the result (here, the result is on stdout because we used the python print function)
print(pipe:read(500))