# ValueError: EntryPoint.parse - invalid entry point in entry-points generated file: 'console_scripts = foo'

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

## Root Cause

A pyproject.toml or setup.cfg declares an entry point without the required 'module:callable' format, e.g. 'foo = mypkg' instead of 'foo = mypkg.cli:main'.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 3.x | active | — | — |

## Workarounds

1. **** (97% success)
   ```
   [project.scripts]
foo = "mypkg.cli:main"
# or for a module entry
foo = "mypkg.cli:__main__"
   ```
2. **** (90% success)
   ```
   python - <<'PY'
from importlib.metadata import EntryPoint
EntryPoint(name='foo', value='mypkg.cli:main', group='console_scripts')
print('ok')
PY
   ```

## Dead Ends

- **** — An empty callable is still invalid; the parser requires a non-empty name after the colon. (90% fail)
- **** — Breaks the CLI the project intends to expose and downstream scripts that call it. (60% fail)
