linux上基于requirements.txt安装依赖包提示pywin32找不到版本
问题
pywin32 是 Windows-only 依赖,Linux 构建时 pip 找不到可安装版本。
解决
正确做法是:按平台条件安装依赖。
1. requirements.txt
1 | pywin32; sys_platform == "win32" |
如果还有其他 Windows 专用依赖,也采用同样方式:
1 | pywin32; sys_platform == "win32" |
Linux 上则不会安装这些包。
2. 如果是 pyproject.toml
1 | [project] |
3. 如果你的代码本身依赖 pywin32
仅修改依赖还不够。代码需要做平台隔离,例如:
1 | import sys |
或者:
1 | if sys.platform == "win32": |
4. 构建平台
如果你现在的 CI/CD 只有 Windows,需要增加 Linux runner,例如 GitHub Actions:
1 | jobs: |
这样:
| 平台 | pywin32 |
构建 |
|---|---|---|
| Windows | 安装 | 支持 |
| Linux | 跳过 | 支持 |
核心修改就是:
1 | - pywin32 |