【问题标题】:"import as" leads to unresolved import error, "from .. import" does not“import as”会导致未解决的导入错误,“from .. import”不会
【发布时间】:2012-11-02 22:24:27
【问题描述】:

我正在尝试使用 eclipse/pydev 为 irc bot supybot 编写一些插件。 Pydev 给了我关于 supybot-modules/packages 上未解决的导入的错误(例如 import supybot.utils as utils),但在 e 上工作正常。 G。 “从 supybot.commands 导入 *”。所以我想我正确设置了 dydev,因为它找到了想要的模块。问题一定出在 pydev/eclipse 中,因为机器人工作正常,而在 eric5 中我也没有收到任何错误。

删除解释器并设置它没有帮助。关于如何解决这个问题的任何其他想法?系统:Arch Linux、Eclipse Juno、PyDev 2.7.1,想要(并设置)python 解释器是 2.7,supybot 安装在 Python 2.7 的站点包中。

编辑:刚刚注意到:PyDev 没有将“from ... import *”标记为错误,但如果我使用从那里导入的函数,我会在该函数上遇到错误。

代码示例:

[...]
import supybot.utils as utils
from supybot.commands import *
[...]
wunsch = wrap(wunsch, ['text', 'now'])
[...]

第一行出错:未解决的导入:utils
第二行没有错误也没有警告
第 3 行错误:未定义变量:wrap
但是 'wrap' 是在 supybot.commands 中声明的函数

【问题讨论】:

  • 请包含一些代码示例并复制/粘贴您收到的实际错误。

标签: pydev


【解决方案1】:

运行import supybot; print supybot.__path__ 以获取 supybot 包的路径。 PyDev 可能导入了错误的文件(例如,如果您在工作区中使用名为 supybot 的文件夹)。

【讨论】:

  • 感谢您的回答。我在那个 Eclipse 工作区中创建了一个新文件,并且只添加了 import supybot; print supybot; import supybot.utils as utils; print utils.__path__ 两个导入语句都被标记为未解析(左侧和右侧边栏中的红色标记)。但如果我执行它,一切都按预期工作,路径是正确的:['/usr/lib/python2.7/site-packages/supybot'] ['/usr/lib/python2.7/site-packages/supybot/utils']
  • 根据你最初的大部分,第一次导入是解析的,所以它应该有一个__path__。
  • 它打印正确的路径,但在编辑器中将导入标记为未解决。
猜你喜欢
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 2023-02-13
  • 2023-02-22
  • 2020-05-11
  • 1970-01-01
相关资源
最近更新 更多