激活TensorFlow环境后运行含nltk的Python脚本报错求助
嘿,我来帮你搞定这个问题!先把你的情况理清楚:你已经在普通环境里把NLTK装好了能用,但切换到TensorFlow环境跑同时依赖NLTK和TF的脚本时就报错,对吧?你的环境是Anaconda管理的Python3.6.3(64位Linux),普通环境里import nltk没问题。
先排查最常见的几个问题,一步步来:
先确认TensorFlow环境里有没有装NLTK
很多人容易犯这个错:普通环境装了NLTK,但TensorFlow是独立的虚拟环境,里面根本没装这个包!激活你的TF环境后,先运行这个命令看看列表里有没有NLTK:conda list # 如果你用conda管理环境 # 或者用pip pip list如果没找到,直接在激活的环境里安装:
# 二选一就行 conda install nltk pip install nltk别忘了下载NLTK的数据集
就算装了NLTK包,很多功能(比如分词、停用词处理)都需要对应的数据集支持。激活TF环境后,打开Python交互窗口,运行:import nltk nltk.download('punkt') # 如果你知道需要哪个数据集就下哪个,不知道就用nltk.download('all')全下(有点大,但省心)要是下载慢,你可以手动找国内的镜像资源下载,然后把数据集放到NLTK默认的
nltk_data目录里就行。检查版本兼容性
你的Python是3.6.3,TensorFlow要选支持这个版本的(比如TF 1.15.x或者TF 2.x早期版本),同时NLTK也要选和Python3.6兼容的版本。如果安装的NLTK版本太新或太旧,可能会出问题,你可以试试指定版本安装:pip install nltk==3.5这个版本对Python3.6的兼容性非常好,我之前在类似环境里用过没问题。
确认你真的在TF环境里运行脚本
有时候可能激活环境后,不小心用了系统的Python来跑脚本。激活环境后先跑这个命令看看当前Python的路径:which python确保这个路径是你TensorFlow环境的目录,然后再用这个Python来运行你的脚本:
python your_target_script.py
如果这些方法都试过还不行,你可以把具体的报错信息贴出来,我再帮你进一步排查~
内容的提问来源于stack exchange,提问作者V. Shikongo

