【问题标题】:Pydev shows unresolved import, but script runs?Pydev 显示未解决的导入,但脚本运行?
【发布时间】:2013-10-05 16:57:34
【问题描述】:

我正在使用 PyDev。

我正在尝试将我的项目类组织成包。

例如在一个文件夹中,我在 /libraries/fund_price_library.py 有一个模块

在我项目的另一个文件中,我尝试使用以下方式导入:

from libraries.fund_price_library import FundPriceLibrary as fpl

PyDev 用红色下划线“FundPriceLibrary as fpl”,并用以下错误标记:

unresolved import fpl

但是,我的脚本运行良好,所以我相信我正确地进行了导入。

我的项目中有很多类似的错误,而且看起来很乱。但是,我的 python 代码可以工作,所以我假设我正确导入了。

如何抑制这些错误?

【问题讨论】:

    标签: python-3.x pydev


    【解决方案1】:

    This question 可能会解决您的问题。

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

    可能只是 PyDev 不知道在哪里找到文件。

    【讨论】:

    • 奇怪的是,它可以工作,尽管我的文件在我当前的项目中,而不是在外部库中。
    • 我猜 PyDev 设置中的路径有些问题 - 所以 PyDev 找不到库,尽管 Python 可以。 (您也可以通过单击对勾来接受我的回答)
    • python 3 有隐式命名空间包,init 文件不是强制性的。我不知道它是否相关,但我的项目不包含初始化文件,不幸的是这并没有解决我的问题。不过请看我的回答。
    【解决方案2】:

    我遇到了同样的问题。解决方案是(我有 Eclipse 4.6 w/Pydev 5.6):

    Project > Properties > PyDev - PYTHONPATH > tab Source Folders
    

    执行此操作:Add source folder(按钮)并添加您的(当前)源目录,在我的情况下它是src 子目录,因此新项目出现在窗口中: /${PROJECT_DIR_NAME}/src

    所以现在我有这个了:

    /${PROJECT_DIR_NAME}
    /${PROJECT_DIR_NAME}/src
    

    我的 PyDev 现在很开心 :)

    【讨论】:

    • 尽管在这个问题和其他类似问题上列出了许多更奇特和更彻底的解决方案:这个简单的解决方案对我有用。
    • 这行得通。我发现我必须重新启动 Eclipse 才能生效
    • @S.N.文件 > 重启 做这件事!
    【解决方案3】:

    Python 3 有implicit namespace packages,所以子包中的__init__.py 文件不是强制性的。但是,PyDev 似乎仍然需要它们。

    我的解决方案是在子包中添加空的__init__.py 文件。

    【讨论】:

      【解决方案4】:

      我在一个新项目中遇到了这个问题,出现“未解决的导入”错误,一个导入的符号实际上还没有被使用。
      只有当 eclipse“项目”名称和底层 python“包”名称相同时,才会出现问题。当我将 eclipse 项目名称更改为其他名称时,错误消息消失了(似乎某处可能存在错误)。

      顺便说一句:使用 Eclipse 2018-12 (4.10.0),PyDev 版本 7.1.0.201902031515

      【讨论】:

        【解决方案5】:

        快速而肮脏的解决方案:

        也许您可以通过在代码中使用标记 UnresolvedImport 来告诉 pydev 忽略导入错误。 有关该主题的讨论,请参阅 how-can-i-make-the-pydev-editor-selectively-ignore-errors

        PS 如果你在 eclipse 中使用 pydev,ctrl+1 应该会建议这个解决方案。

        【讨论】:

          猜你喜欢
          • 2018-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-09
          • 2012-02-04
          • 1970-01-01
          • 2011-11-09
          • 1970-01-01
          相关资源
          最近更新 更多