When using python-shell-send-string and the things that depend upon it, the PATH is grabbed from the local machine regardless of whether the Python file is being edited locally or remotely. The file is then executed remotely if you're using Tramp, which can cause a mismatch if the binary is in a different location on the remote host even if the binary is on the remote PATH.
It would be better if, when using Tramp, the PATH is pulled down from the remote host instead so that the correct binary is used without manually editing the path to it every time a Python process is started.
When using python-shell-send-string and the things that depend upon it, the PATH is grabbed from the local machine regardless of whether the Python file is being edited locally or remotely. The file is then executed remotely if you're using Tramp, which can cause a mismatch if the binary is in a different location on the remote host even if the binary is on the remote PATH.
It would be better if, when using Tramp, the PATH is pulled down from the remote host instead so that the correct binary is used without manually editing the path to it every time a Python process is started.