functools没有lru_cache属性。

8

我正在使用 Windows 上的 Python 3.7。

运行每个代码时都会出现这个错误:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import nltk
  File "C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\__init__.py", line 99, in <module>
    from nltk.internals import config_java
  File "C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\internals.py", line 11, in <module>
    import subprocess
  File "C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 50, in <module>
    import signal
  File "C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\signal.py", line 3, in <module>
    from functools import wraps as _wraps
  File "C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\functools.py", line 21, in <module>
    from collections import namedtuple
  File "C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\collections\__init__.py", line 22, in <module>
    from keyword import iskeyword as _iskeyword
  File "C:\Users\HP\Desktop\tweepy\keyword.py", line 1, in <module>
    import re
  File "C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\re.py", line 297, in <module>
    @functools.lru_cache(_MAXCACHE)
AttributeError: module 'functools' has no attribute 'lru_cache'

如何解决这个问题?

以下脚本向您展示了什么:import functools; print(functools) - Jeronimo
@Jeronimo <模块 'functools' 来自 'C:\Users\HP\AppData\Local\Programs\Python\Python37\lib\functools.py'> - F.Sh
2个回答

6

看起来有人在pypi上发布了一个functools包,所以如果你运行了以下命令:

# don't run this!
pip install functools

您可能不小心安装了该软件包。如果遇到此错误,我建议:

pip uninstall functools

为了确保你使用的工具包是基础包 functools。
(我最初尝试使用 functools.cache,但它似乎只存在于 Python 3.8 中而不是更早的版本。)

3
它实际上只在3.9中添加。 - Rustam A.
谢谢!我在使用Python 3.7时遇到了functools.cache的问题,现在已经解决了。 - J Agustin Barrachina

0
我最近也遇到了同样的错误,原因是我的项目中有一个名为functools.py的文件。将其重命名后问题得以解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接