When using delegation to a non localhost entry (possibly any entry w/o ansible_python_interpreter defined).
```
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: UnboundLocalError: local variable 'module_style' referenced before assignment
fatal: [me]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
```

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
interpreter_discovery
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
devel (2.9 works)
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
any

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Have at least one host w/o ansible_python_interpreter defined and delegate to it.
<!--- Paste example playbooks or commands between quotes below -->
```yaml
- hosts: all
  gather_facts: no
  tasks:
  - command: hostname
    delegate_to: "{{ item }}"
    with_items:
    - localhost
    - "{{ inventory_hostname }}"
```

run 
```ansible-playbook ~/test.yml  -i me, -e ansible_connection=local```
but real hosts also work
<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
```
changed: [me -> localhost] => (item=localhost)
changed: [me -> me] => (item=me)
```

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
short message in summary, here is -vvv output
<!--- Paste verbatim command output between quotes -->
```paste below
task path: /home/bcoca/test.yml:4
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: bcoca
<localhost> EXEC /bin/sh -c 'echo ~bcoca && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/bcoca/.ansible/tmp `"&& mkdir /home/bcoca/.ansible/tmp/ansible-tmp-1591711343.9575436-11872-36560578379729 && echo ansible-tmp-1591711343.9575436-11872-36560578379729="` echo /home/bcoca/.ansible/tmp/ansible-tmp-1591711343.9575436-11872-36560578379729 `" ) && sleep 0'                                                        
Using module file /home/bcoca/work/ansible/lib/ansible/modules/command.py
<localhost> PUT /home/bcoca/.ansible/tmp/ansible-local-11861uysw5vr0/tmprw25yp0h TO /home/bcoca/.ansible/tmp/ansible-tmp-1591711343.9575436-11872-36560578379729/AnsiballZ_command.py
<localhost> EXEC /bin/sh -c 'chmod u+x /home/bcoca/.ansible/tmp/ansible-tmp-1591711343.9575436-11872-36560578379729/ /home/bcoca/.ansible/tmp/ansible-tmp-1591711343.9575436-11872-36560578379729/AnsiballZ_command.py && sleep 0'                                                                                                                                                                    
<localhost> EXEC /bin/sh -c '/usr/lib/python-exec/python3.6/python /home/bcoca/.ansible/tmp/ansible-tmp-1591711343.9575436-11872-36560578379729/AnsiballZ_command.py && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /home/bcoca/.ansible/tmp/ansible-tmp-1591711343.9575436-11872-36560578379729/ > /dev/null 2>&1 && sleep 0'
changed: [me] => (item=localhost) => {
    "ansible_loop_var": "item",
    "changed": true,
    "cmd": [
        "hostname"
    ],
    "delta": "0:00:00.001170",
    "end": "2020-06-09 10:02:24.175489",
    "invocation": {
        "module_args": {
            "_raw_params": "hostname",
            "_uses_shell": false,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "item": "localhost",
    "rc": 0,
    "start": "2020-06-09 10:02:24.174319",
    "stderr": "",
    "stderr_lines": [],
    "stdout": "erebos",
    "stdout_lines": [
        "erebos"
    ]
}
<me> ESTABLISH LOCAL CONNECTION FOR USER: bcoca
<me> EXEC /bin/sh -c 'echo ~bcoca && sleep 0'
<me> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/bcoca/.ansible/tmp `"&& mkdir /home/bcoca/.ansible/tmp/ansible-tmp-1591711344.1984553-11872-223967576967825 && echo ansible-tmp-1591711344.1984553-11872-223967576967825="` echo /home/bcoca/.ansible/tmp/ansible-tmp-1591711344.1984553-11872-223967576967825 `" ) && sleep 0'
<me> Attempting python interpreter discovery
<me> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'python3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; command -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '"'"'python'"'"'; echo ENDFOUND && sleep 0'
<me> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
<me> Python interpreter discovery fallback (unsupported Linux distribution: gentoo)
<me> Attempting python interpreter discovery
<me> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'python3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; command -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '"'"'python'"'"'; echo ENDFOUND && sleep 0'
<me> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
<me> Python interpreter discovery fallback (unsupported Linux distribution: gentoo)
<me> EXEC /bin/sh -c 'rm -f -r /home/bcoca/.ansible/tmp/ansible-tmp-1591711344.1984553-11872-223967576967825/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/home/bcoca/work/ansible/lib/ansible/executor/task_executor.py", line 121, in run
    item_results = self._run_loop(items)
  File "/home/bcoca/work/ansible/lib/ansible/executor/task_executor.py", line 375, in _run_loop
    res = self._execute(variables=task_vars)
  File "/home/bcoca/work/ansible/lib/ansible/executor/task_executor.py", line 669, in _execute
    result = self._handler.run(task_vars=variables)
  File "/home/bcoca/work/ansible/lib/ansible/plugins/action/command.py", line 24, in run
    results = merge_hash(results, self._execute_module(task_vars=task_vars, wrap_async=wrap_async))
  File "/home/bcoca/work/ansible/lib/ansible/plugins/action/__init__.py", line 844, in _execute_module
    (module_style, shebang, module_data, module_path) = self._configure_module(module_name=module_name, module_args=module_args, task_vars=task_vars)
  File "/home/bcoca/work/ansible/lib/ansible/plugins/action/__init__.py", line 256, in _configure_module
    return (module_style, module_shebang, module_data, module_path)
UnboundLocalError: local variable 'module_style' referenced before assignment
fatal: [me]: FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}
```

another one and wants to use the same remote tmp for both should set
            self._connection._shell.tmpdir rather than this parameter.
        :kwarg task_vars: The variables (host vars, group vars, config vars,
            etc) associated with this task.
        :returns: dictionary of results from the module
        Implementors of action modules may find the following variables especially useful:
        * Module parameters.  These are stored in self._task.args
        """
        result = {}
        if tmp is not None:
            result['warning'] = ['ActionModule.run() no longer honors the tmp parameter. Action'
                                 ' plugins should set self._connection._shell.tmpdir to share'
                                 ' the tmpdir']
        del tmp
        if self._task.async_val and not self._supports_async:
            raise AnsibleActionFail('async is not supported for this task.')
        elif self._play_context.check_mode and not self._supports_check_mode:
            raise AnsibleActionSkip('check mode is not supported for this task.')
        elif self._task.async_val and self._play_context.check_mode:
            raise AnsibleActionFail('check mode and async cannot be used on same task.')
        
        if self._VALID_ARGS:
            task_opts = frozenset(self._task.args.keys())
            bad_opts = task_opts.difference(self._VALID_ARGS)
            if bad_opts:
                raise AnsibleActionFail('Invalid options for %s: %s' % (self._task.action, ','.join(list(bad_opts))))
        if self._connection._shell.tmpdir is None and self._early_needs_tmp_path():
            self._make_tmp_path()
        return result
    def cleanup(self, force=False):