### Summary

Ansible devel sanity tests failing with error: packaging Python module unavailable; unable to validate the collection

### Issue Type

Bug Report

### Component Name

ansible sanity tests

### Ansible Version

```console
$ ansible devel
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

mac os

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)

```
Ansible devel sanity tests is failing with `stderr: [WARNING]: packaging Python module unavailable; unable to validate collection`. Plz ref the below test failures:
[ansible-test-sanity-docker-devel](https://dashboard.zuul.ansible.com/t/ansible/build/ffc5d7c618a740bf9c783e15c2d14806)
[network-ee-sanity-tests](https://dashboard.zuul.ansible.com/t/ansible/build/b4ab02b51d76487b97356f3c6ffe76fe)

### Expected Results

Ansible sanity tests run without failure for `devel`

### Actual Results

```console
Ansible sanity tests fail for `devel`
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
base_path = base_dir + os.path.sep
            source = None
            
            message = re.sub(r'\n *', ': ', message)
            for result in results:
                if result[0] == full_path:
                    
                    line = result[1] or 0
                if not source and result[0].startswith(base_path) and not result[0].startswith(temp_path):
                    
                    source = (os.path.relpath(result[0], base_path), result[1] or 0, 0)
            if isinstance(ex, SyntaxError):
                
                if ex.filename == full_path:  
                    
                    line = ex.lineno or 0  
                    offset = ex.offset or 0  
                elif ex.filename.startswith(base_path) and not ex.filename.startswith(temp_path):  
                    
                    source = (os.path.relpath(ex.filename, base_path), ex.lineno or 0, ex.offset or 0)  
                
                
                message = re.sub(r' \(.*?, line [0-9]+\)$', '', message)
            if source and source[0] != path:
                message += ' (at %s:%d:%d)' % (source[0], source[1], source[2])
            report_message(path, line, offset, 'traceback', '%s: %s' % (exc_type.__name__, message), messages)
        finally:
            capture_report(path, capture_normal, messages)
            capture_report(path, capture_main, messages)
    def is_name_in_namepace(name, namespaces):