Mac(10.14)Python3.7环境下NLTK导入异常:终端可用IDLE报错
解决Mac上IDLE无法导入NLTK的问题
看起来你遇到的核心问题不是目录切换的问题,而是缺少NLTK依赖的six模块,再加上终端和IDLE可能使用了不同的Python环境,导致终端里装了依赖但IDLE对应的环境没跟上。下面一步步来解决:
1. 先确认IDLE对应的Python版本
打开IDLE的交互窗口,运行这段代码:
import sys print(sys.executable)
把输出的路径记下来(比如/usr/bin/python或/Library/Python/2.7/bin/python),然后打开终端运行which python,对比两个路径:
- 如果路径一致:说明系统Python环境里确实缺少
six模块 - 如果路径不一致:说明IDLE用的是另一个独立的Python环境,需要给这个环境单独装依赖
2. 给IDLE对应的环境安装six模块
根据你刚才得到的Python路径,选对应的命令:
- 如果是系统自带的Python2.7(路径包含
/Library/Python/2.7或/usr/bin/python),在终端运行:
要是你的系统里有sudo easy_install sixpip2,也可以用:sudo pip2 install six - 如果是你自己安装的Python环境(路径里有
/Users/你的用户名或/usr/local),去掉sudo直接用对应版本的pip命令,比如pip2 install six
3. 验证修复
回到IDLE,先测试导入six:
import six
如果没报错,再导入nltk:
import nltk
这时候应该就能成功了。
补充:为什么切换目录没用?
Python导入模块时,是依据sys.path里的路径搜索的,/Library/Python/2.7/site-packages本来就在系统Python的sys.path列表里,所以切换工作目录根本不会改变模块的搜索逻辑,解决不了依赖缺失的本质问题。
内容的提问来源于stack exchange,提问作者chortos
相关产品推荐
相关产品推荐

