【问题标题】:Invalid syntax on importing nltk in python 2.7在 python 2.7 中导入 nltk 的语法无效
【发布时间】:2020-08-17 00:48:03
【问题描述】:

当我在 python 2.7 CLI 中执行以下代码时

import nltk

它显示以下错误

SyntaxError:Invalid Syntax

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/nani/.local/lib/python2.7/site-packages/nltk/__init__.py", line 128, in <module>
from nltk.collocations import *
File "/home/nani/.local/lib/python2.7/site-packages/nltk/collocations.py", line 35, in <module>
from nltk.probability import FreqDist
File "/home/nani/.local/lib/python2.7/site-packages/nltk/probability.py", line 333
print("%*s" % (width, samples[i]), end=" ")                                      ^
SyntaxError: invalid syntax

如何解决这个问题?

【问题讨论】:

  • NLTK 不支持 Python 2。

标签: python python-2.7 syntax syntax-error nltk


【解决方案1】:

nltk 放弃了对 Python2 的支持,尝试使用支持 python 2 的旧版本 nltk,我发现 nltk 3.0 版本支持 python 2 [已编辑 - 感谢 user2357112 supports Monica ]

所以,尝试使用命令下载并安装以前版本的 nltk

pip install nltk==3.0

您可以在上述情况下更改版本号为3.0,并可以安装任何您认为可以使用的合适版本。

它对我有用。如果有人遇到同样的问题,可以尝试上述方法。

【讨论】:

  • 这不是错误,不会在即将发布的版本中“修复”。 NLTK 已放弃对 Python 2 的支持。
【解决方案2】:

代码使用print 函数,在 Python 2.7 中必须启用

from __future__ import print_function

但是,这必须出现在要导入的模块中,而不是导入模块的代码中。 nltk 似乎假定它将由 Python 3 解释器导入。

【讨论】:

  • 你能告诉我,我需要在哪个模块中添加这一行,因为nltk模块中有很多子文件夹和.py和.pyc代码吗?
  • 你必须把它放在每个使用 print 函数的模块中。但是,每个模块中可能还有 Python 2 解释器无法使用的其他内容。
  • 如果支持 Python 2 可以通过添加一些未来的导入来实现,那么我相信 nltk 团队会做到这一点。但他们已经继续前进了。我不认为重新审视这个决定是初学者应该尝试的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 2011-04-29
  • 2015-09-13
  • 2013-02-27
  • 1970-01-01
相关资源
最近更新 更多