macOS下pip3安装adb失败问题求助
问题描述
在macOS系统中已安装Homebrew 4.3.6、SWIG Version 4.2.1、M2Crypto 0.41.0及OpenSSL 3.0.13,但执行pip3 install adb时安装失败,核心错误为SWIG编译过程中无法找到OpenSSL相关头文件(如openssl/opensslv.h、openssl/safestack.h)。
错误核心原因
adb包依赖M2Crypto<=0.26.4,该旧版本M2Crypto默认仅在系统默认路径(/usr/include)查找OpenSSL头文件,但通过Homebrew安装的OpenSSL头文件位于Homebrew专属目录,导致编译时路径不匹配,无法找到所需文件。
解决方法
方法一:指定OpenSSL路径安装依赖后再装adb
- 卸载已安装的新版M2Crypto:
pip3 uninstall -y M2Crypto - 获取Homebrew安装的OpenSSL路径:
输出示例:brew --prefix openssl/usr/local/opt/openssl@3(根据OpenSSL版本可能略有差异) - 用指定编译参数的方式安装旧版M2Crypto:
CFLAGS="-I$(brew --prefix openssl)/include" LDFLAGS="-L$(brew --prefix openssl)/lib" pip3 install M2Crypto==0.26.4 - 安装adb:
pip3 install adb
方法二:使用虚拟环境隔离依赖(推荐)
避免全局依赖冲突,创建虚拟环境后执行上述步骤:
- 创建并激活虚拟环境:
python3 -m venv adb-env source adb-env/bin/activate - 重复方法一中的路径获取、旧版M2Crypto安装、adb安装步骤。
方法三:替换为维护活跃的adb替代包(长期方案)
adb包(v1.3.0)已长期未更新,依赖的M2Crypto版本过旧,建议使用更现代的替代包adb-shell:
pip3 install adb-shell
该包无需依赖旧版M2Crypto,兼容性与稳定性更优。
内容的提问来源于stack exchange,提问作者Amadeus Bach
相关产品推荐
相关产品推荐

