# error: 'entry_points' must be a dictionary

- **ID:** `python/setuptools-entry-points-format`
- **Domain:** python
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

The 'entry_points' argument in setup() was provided as a list or string instead of a dict.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 3.8 | active | — | — |

## Workarounds

1. **Use correct dict format with group keys** (95% success)
   ```
   setup(
    entry_points={
        'console_scripts': ['mycommand=mymodule:main'],
        'myplugin': ['myplugin=mymodule:plugin']
    }
)
   ```
2. **Use setup.cfg for entry points** (90% success)
   ```
   # setup.cfg
[options.entry_points]
console_scripts =
    mycommand = mymodule:main
   ```

## Dead Ends

- **Passing a list of strings** — Setuptools expects nested dict structure; list causes parsing error. (90% fail)
- **Omitting entry_points** — Console scripts or plugins will not be registered. (60% fail)
