# ValueError：无效版本：'1.0.0-beta'

- **ID:** `python/setuptools-metadata-version-invalid`
- **领域:** python
- **类别:** data_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

setuptools 根据 PEP 440 校验版本字符串。'1.0.0-beta' 使用了连字符，这是不允许的；PEP 440 使用 'b' 表示 beta，例如 '1.0.0b0'。预发布分隔符必须规范化。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.8 | active | — | — |
| 3.9 | active | — | — |
| 3.10 | active | — | — |
| 3.11 | active | — | — |
| 3.12 | active | — | — |

## 解决方案

1. **** (98% 成功率)
   ```
   version='1.0.0b0'  # instead of '1.0.0-beta'
   ```
2. **** (90% 成功率)
   ```
   pip install setuptools_scm && echo '[tool.setuptools_scm]' >> pyproject.toml
   ```
3. **** (85% 成功率)
   ```
   python -c "from packaging.version import Version; Version('1.0.0-beta')"
   ```

## 无效尝试

- **** — Legacy setup.py still validates version via packaging. (90% 失败率)
- **** — The value is already a string; the problem is its content. (95% 失败率)
