Python script with venv and numpy library run fine in code server, but not in nodered pythonshell or exec node

I am having a simple script to grab a frame remotely from a rtsp stream. It need opencv-python (cv2) and numpy library. If I run the command on the code-server terminal, it works fine as shown below

But when I used pythonshell node or exec node in node-red to trigger the script, it show the error that the _umath of numpy library is not found

I also tried pythonscript, and the result are the same.

What could be the issue here?