Mac环境安装aiohttp/setproctitle时遇subprocess错误求助
解决Mac OS下Python3.7安装aiohttp/setproctitle的subprocess错误
1. 修复_ctypes模块缺失问题
_ctypes是Python依赖的核心模块,缺失会导致编译包时失败,按以下操作修复:
- 安装Xcode命令行工具:
若提示已安装,直接跳过。xcode-select --install - 用Homebrew安装libffi依赖库:
brew install libffi - 重新安装Python3.7,确保编译时能识别libffi:
如果用pyenv管理Python版本,执行:
若直接用官网安装包,先卸载现有Python3.7,再重新运行安装程序(确保Xcode和libffi已安装完成)。export LDFLAGS="-L/usr/local/opt/libffi/lib" export CPPFLAGS="-I/usr/local/opt/libffi/include" pyenv install 3.7.11
2. 重建虚拟环境并尝试安装
- 删除旧虚拟环境后,创建新的Python3.7虚拟环境:
python3.7 -m venv myenv source myenv/bin/activate - 更新pip到Python3.7兼容的最高版本(避免版本不兼容):
pip install pip==21.3.1 - 单独安装两个包,先装setproctitle:
再装aiohttp:pip install setproctitle==1.1.10
若仍报错,尝试跳过构建隔离:pip install aiohttp==3.8.1pip install setproctitle==1.1.10 --no-build-isolation pip install aiohttp==3.8.1 --no-build-isolation
3. 备选:直接安装预编译wheel包
如果编译始终失败,直接下载对应系统版本的预编译wheel包安装:
- 从PyPI下载对应Python3.7、Mac OS的wheel文件(选择cp37开头、适配你系统架构的包)
- 用pip安装本地wheel文件:
pip install /本地路径/setproctitle-1.1.10-cp37-cp37m-macosx_xxx.whl pip install /本地路径/aiohttp-3.8.1-cp37-cp37m-macosx_xxx.whl
内容的提问来源于stack exchange,提问作者Barbod Imani
相关产品推荐
相关产品推荐

