This would mean that using Virtualenv and installing ansible third party python libraries breaks Ansible
It appears that this code here ansible_root/runner/shell_plugins/sh.py
def build_module_command(self, env_string, shebang, cmd, rm_tmp=None):
cmd_parts = [env_string.strip(), shebang.replace("#!", "").strip(), cmd] <------- this here is causing /usr/bin/python being used instead of ansible_python_interpreter
new_cmd = " ".join(cmd_parts)
if rm_tmp:
new_cmd = '%s; rm -rf %s >/dev/null 2>&1' % (new_cmd, rm_tmp)
return new_cmd