【问题标题】:Unresolved import errors yet successful import still occurs未解决的导入错误但仍会成功导入
【发布时间】:2013-02-04 19:32:58
【问题描述】:

我正在 Eclipse Juno 中开发一个项目。我在一个名为 chargen.py 的包中编写了一个名为 Character 的类。 from chargen import Character旁边有个红色的X:

Unresolved import: Character
Character Found at: Avarice_v0.PlayAvarice_v0

from chargen import Character

但导入工作。目前整个代码就是这样的:

from chargen import Character

def main():
    PLAYER = Character("")
    print(PLAYER)

if __name__ == '__main__':
    main()

此代码导致打印 __str__ 证明 Character("") 已运行。此外,它在运行时不会产生错误。为什么 Eclipse 将其标记为 Unresolved import: Character

【问题讨论】:

  • 导入后您是否尝试过构建/清理?
  • 请解释一下您的意思?我不清楚。
  • 在顶部菜单中,构建项目:“项目”>“构建项目”。然后尝试清理它:“项目”>“清理...”
  • Build Project 是灰色的,Build Automatically 被选中。我确实取消选中它,手动构建。然后清理项目对错误没有影响。

标签: import python-3.x pydev eclipse-juno


【解决方案1】:

我想出了如何摆脱错误。我将所有内容都上移了一个目录。该项目的设置显示 PYTHONPATH 包含主目录,但不包含嵌套目录。通过将其全部向上移动并删除现在为空的原始文件夹,我没有未解决的导入错误。这有助于我更多地了解 PyDev 项目初始设置时提供的 PYTHONPATH 选项。

【讨论】:

    【解决方案2】:

    在您的项目的属性中,有一个名为“PyDev - PYTHONPATH”的窗格,以及一个名为“外部库”的子窗格。您可以使用该窗格将源文件夹(任何具有 init.py 的文件夹)添加到路径中。然后,您的项目代码将能够从这些源文件夹中导入模块。

    【讨论】:

    • 你的回答提出了一个我有一段时间的问题。由于chargen.py 与PlayAvarice 在同一个文件夹中,所以导入看起来也在同一个目录中,对吧?这就是此导入有效的原因。似乎错误意味着包chargen.py不在PYTHONPATH中。当我在 Eclipse 中创建一个新项目时,它会询问我是否要将目录添加到 PYTHONPATH、创建一个 SRC 并添加它,或者稍后手动添加它......这个错误是因为在项目创建?我永远不确定哪个选择适合每个项目。
    • 这就像设置外部参考。如果您不打算创建很多并非全部相互关联的东西,我认为您可以将其排除在外。但是,当您正在处理计划在不同项目中使用的东西时,在开始时添加它可能会有所帮助,这样以后就不会再次出现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2012-12-25
    相关资源
    最近更新 更多