Windows10 Python3.9执行pip install uwsgi报错os模块无uname属性
根本原因
uWSGI 本身没有原生支持 Windows 操作系统,你遇到的报错核心是 os.uname() 是 Linux/Unix 系统专属的调用接口,Windows 系统不存在该 API,因此直接使用 pip 安装必然失败。
最优解决方案(适配你部署到Google Cloud的需求)
你完全不需要在本地 Windows 环境安装 uWSGI:
- 本地开发阶段直接使用 Flask 自带的开发服务器调试即可,uWSGI 是生产环境服务器,仅需要在部署的目标服务器上安装
- Google Cloud 提供的应用部署实例默认都是 Linux 系统,你把代码推送到服务器后,在 Linux 环境下执行
pip install uwsgi就可以正常安装,不会有兼容问题
如果确实需要在本地Windows运行uWSGI,优先选择WSL方案
- 先开启 Windows 系统的 WSL 功能,安装 Ubuntu 等 Linux 子系统
- 在子系统内配置 Python 3.9 环境、创建虚拟环境
- 直接在子系统终端执行
pip install uwsgi即可正常安装,不会有兼容问题
不推荐的替代方案
如果你不想使用 WSL,也可以尝试用 Cygwin 或 MSYS2 模拟 Linux 环境,安装 gcc、python3-devel 等依赖后再编译安装 uWSGI,但该方案配置过程坑较多,稳定性远不如 WSL,不建议新手尝试。
注意
你之前查阅的 Ubuntu 解决方案完全不适用于 Windows 环境,libpython3.x-dev 是 Linux 系统专属的软件包,Windows 下不存在对应版本,不需要再浪费时间搜索对应安装包。
内容的提问来源于stack exchange,提问作者puranjan
相关产品推荐
相关产品推荐

