【问题标题】:Eclipse + PyDev says json.load() and json.dump() do not existEclipse + PyDev 说 json.load() 和 json.dump() 不存在
【发布时间】:2014-07-01 07:06:34
【问题描述】:

Eclipse + PyDev 中的以下行在 Python 3.4 中有效,但突出显示为 Undefined variable from import: dump 错误:

import json
with open('C:\\test', 'w') as outfile:
    json.dump([1, 2, 3], outfile)

这是 Eclipse 编辑器的快照:

如何消除该错误?

编辑

输出:

import json
with open('C:\\test', 'w') as outfile:
    json.dump([1, 2, 3], outfile)

print(json.__file__)

是:

C:\Python34\lib\json\__init__.py

以下是 Eclipse 显示的属性列表:

【问题讨论】:

  • 看看导入语句也很有用。更好的是,一个完整但简洁的独立程序,可以显示错误。
  • @BobHy:我编辑了这个问题。现在您可以看到一个带有 Eclipse 错误的工作程序
  • 您在当前模块所在的文件夹中是否有json.py?如果是这样,您可能正在导入它而不是标准库模块,并且错误是由于它没有您期望的东西。
  • @Blckknght:没有文件被称为 json 或 json.py。我刚刚做了pip install peewee,然后我从项目中删除了解释器并将其添加回来。现在 Eclipse 知道 peewee,但它仍然不知道 json
  • @stenci:嗯,那个错误没有多大意义。我对 PyDev 了解不多,但如果它为您提供交互式解释器,请尝试使用 import json; print(json.__file__) 仔细检查它实际上是从标准库而不是其他东西导入模块。

标签: eclipse python-3.x pydev


【解决方案1】:

文件../lib/json/__init__.py第313行的问题

...
if s.startswith(u'\ufeff'):
...

将此行改为

if s.startswith('\ufeff'):

或等待新版本

【讨论】:

    【解决方案2】:

    我无法让 Eclipse 工作,但我能够摆脱错误(以及类似的错误/警告):选择突出显示的单词,按 ctrl+1 并选择包含 @UndefinedVariable 的行在行的末尾添加一条注释,告诉 Eclipse 忽略该行的错误。

    我使用相同的技术来忽略其他模块的其他错误,这有助于保持项目干净。

    更多详情请见here

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但我有一个名为 json.py 的文件。将我的文件从 Eclipse 重命名为 jsonTest.py 会留下 json.pyc。删除该文件没有帮助。做一个项目->清洁没有帮助。最后,我创建了一个新的工作区,现在一切都按预期工作了。这是 Eclipse Kepler 第 2 版。

      【讨论】:

        【解决方案4】:

        json 添加到PyDev Preferences 中Python 解释器的Forced Builtins 列表也可以解决此问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-09-24
          • 2017-02-10
          • 1970-01-01
          • 2017-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多