【问题标题】:Pydev tags import as "unresolved import" but code using this import works fine.Pydev 标记导入为“未解析的导入”,但使用此导入的代码工作正常。
【发布时间】:2013-08-25 21:13:11
【问题描述】:

我对 python 还很陌生,尤其是它的导入机制。我不完全确定我使用的术语是否正确,所以我应该为此道歉。

首先,这似乎是我在使用 3rd 方导入时遇到的问题,因此我无法真正更改其发布的结构。

在这个版本中,所有的包都在 site-packages/[ROOTFOL]/[PACKAGE] [ROOTFOL] 没有__init__.py 文件,只有包文件夹有这个文件。 该文件夹被放置在站点包中,站点包存在于我的 PYTHONPATH 中

在他们提供的示例中,他们这样使用它:

import ROOTFOL.PACKAGE.WhateverObject as obj

我试图避免将每个包都添加到 PYTHONPATH 中,因为它们有很多。一切似乎都运行良好,但它确实抑制了我使用自动完成功能的能力,这是令人沮丧的部分。

我觉得奇怪的是,当安装包时,包旁边有一个 EGG-INFO 文件夹。其中有几个 .txt 文件,其中一个是 namespace_packages.txt,它只有 ROOTFOL。有什么方法我应该将它设置为 PyDev?

【问题讨论】:

    标签: python python-2.7 pydev


    【解决方案1】:

    所以,您在这里看到的是他们的分销模式。通常一个模块会有一个根导入,一切都源于此,但情况不一定如此。他们提供的包(我假设)是许多不相互交互的模块;或者它们都可以独立存在。

    您可以使用“from”关键字,而不是单独导入每个包:

    from ROOTFOL.PACKAGE import *
    

    它将抓取该子模块中的所有内容。您可以给开发人员发电子邮件,询问他们为什么以这种方式部署它……或者您可以将自己的__init__.py 添加到根文件夹中,

    from ROOTFOL import * 
    

    它会在树上行走。祝你好运!

    【讨论】:

    • 好吧,那行得通。我只是添加了我自己的 init.py,验证了 PYTHONPATH 的所有路径都具有正确的大小写(来自另一个 SO 帖子)并完成了。天啊,如果我知道它是如此简单,我会早点这样做!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多