Python 我应该将ntlk.download()放在.py文件中吗?

Python 我应该将ntlk.download()放在.py文件中吗?,python,nltk,spyder,Python,Nltk,Spyder,由于某种原因,在导入nltk之后,当我将nltk.download()放入我的.py文件时,它在Spyder中无法正确运行。不过,它确实在anaconda提示符下运行。我应该将其包含在我的.py文件中吗?如果是这样,我如何让Spyder同意 谢谢 我不知道你到底想要什么。如果您只需要nltk中的语料库,则不必在代码中放入nltk.download(),只需在shell中运行nltk.download()一次,然后下载所需的语料库。提醒一下,还有另一个函数名为nltk.download-gui()

由于某种原因,在导入nltk之后,当我将
nltk.download()
放入我的
.py
文件时,它在Spyder中无法正确运行。不过,它确实在anaconda提示符下运行。我应该将其包含在我的
.py
文件中吗?如果是这样,我如何让Spyder同意


谢谢

我不知道你到底想要什么。如果您只需要nltk中的语料库,则不必在代码中放入nltk.download(),只需在shell中运行nltk.download()一次,然后下载所需的语料库。提醒一下,还有另一个函数名为nltk.download-gui()。您可以在spyder中尝试,或者如果问题出在spyder设置中,您应该将图形后端更改为Qt5。

听起来spyder块连接到外部
qt
库,必须启动该库才能创建交互式下载器窗口。我不会费心寻找解决方案,因为:

除非您正在编写安装程序,否则不要从您的程序中调用
nltk\u download
普通nltk代码应依赖于已下载的数据。

也许您听说过github由于(太多?)流氓脚本的下载请求太多而暂时阻止了整个nltk下载服务。不要滥用该服务,否则下次您的IP地址可能会被列入黑名单

如果您真的要编写一个将要分发的程序,并且需要获取自己的数据资源,那么可以将该资源包含在分布式捆绑包中,或者在无法加载该资源时设置下载条件。例如:

try:
    tagged = nltk.pos_tag(tokens)
except LookupError:
    nltk.download("averaged_perceptron_tagger")
将下载ID(交互式下载程序中的第一列)用于代码所需的任何资源。

“无法正确运行”-请解释。