macOS系统pip3安装nltk后Python shell导入报错如何解决?
macOS安装nltk后导入失败解决方案
报错根因
该错误由macOS的库验证机制触发:nltk依赖的第三方regex库的二进制扩展文件未经过签名,被系统拦截无法加载,导致nltk导入链路中断。
解决方案
按优先级尝试以下操作即可:
- 方案1:源码重装regex库
卸载现有已编译的regex包,强制从源码编译安装适配当前系统的版本,执行命令:
重装完成后重新导入nltk验证即可。pip3 uninstall -y regex && pip3 install --no-binary :all: regex - 方案2:手动给二进制文件签名
若方案1无效,可通过Xcode命令行工具给未签名的二进制文件做临时 ad-hoc 签名,先执行xcode-select --install安装命令行工具(已安装可跳过),再执行签名命令:
命令中的路径替换为你报错信息中提示的codesign -f -s - /Users/userId/Library/Python/3.9/lib/python/site-packages/regex/_regex.cpython-39-darwin.so_regex.cpython-39-darwin.so实际路径即可。 - 方案3:更换Python环境
若前两个方案均失败,大概率是你当前使用的Python分发版本开启了严格的库验证限制,可换用Homebrew安装的Python版本,或通过venv创建虚拟环境后在虚拟环境内重新安装nltk及其依赖,即可规避全局环境的验证限制。
内容的提问来源于stack exchange,提问作者Yeswanth
相关产品推荐
相关产品推荐

