【问题标题】:attempted relative import in non-package error in mavlink尝试在 mavlink 中的非包错误中进行相对导入
【发布时间】:2014-07-03 19:50:15
【问题描述】:

我已经浏览了论坛,但没有找到特定于 mavlink 的答案。

我目前正在用python编写脚本,我想使用mavlink的python模块。 mavlink 的文档告诉我从我的 mavlink 文件夹运行 mavgenerate.py。当我运行这个脚本时,会出现一个 gui 询问我的 xml 文件、指定的输出目录以及我希望我的头文件使用的语言。当我选择为 C 制作头文件时,mavgenerate.py 有效,但它给了我错误:“当我尝试选择 python 时,尝试在非包中进行相对导入”。 我的 xml 文件位于:

C:\Python27\mavlink\message_definitions\v1.0

我的 python 模块输出目录为:

C:\Python27\mavlink\pymavlink\include

下面是我的错误截图。

谁能告诉我我做错了什么?

【问题讨论】:

  • 如果将工作目录移出 c:\Python27 会发生什么?

标签: python-2.7 packages


【解决方案1】:

这是一个很老的问题,但我刚刚遇到了这个问题。我应用的解决方案是:在 mavgenerate.py 中替换以下行

sys.path.append(os.path.join('pymavlink','generator'))
from mavgen import *

from pymavlink.generator.mavgen import *

我不知道问题的确切原因,但来自 this 线程我认为问题在于 python 将目录解释为包。

我用过python 2.7。虽然尝试使用 python 3.4,但没有机会。

【讨论】:

    猜你喜欢
    • 2014-02-28
    • 2019-10-16
    • 2019-05-25
    • 2014-01-02
    • 2015-03-31
    • 1970-01-01
    • 2015-12-08
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多