【问题标题】:Python ImportError: failed to import from filePython ImportError:无法从文件导入
【发布时间】:2014-05-04 10:35:30
【问题描述】:

我正在尝试编译MAVProxy

运行

python mavproxy.py --master=/dev/ttyUSB0 --baudrate=57600

返回错误

Traceback(最近一次调用最后一次):

文件“mavproxy.py”,第 1151 行,在

mpstate = MPState()

文件“mavproxy.py”,第 114 行,在 init 中

从 MAVProxy.modules.lib.mp_settings 导入 MPSettings、MPSetting

ImportError: 无法导入名称 MPSetting

  1. 有一个__init__.py

  2. 目录架构是

MAV代理\

|- __init__.py

|-mavproxy.py

|-(其他文件

|- 模块\

   |- __ init__.py

   |- (other files

   |- lib\

       |- __ init__.py

       |- mp_settings.py

在mavproxy.py中

class MPState(object):
    def __init__(self):
        self.console = textconsole.SimpleConsole()
        self.map = None
        self.map_functions = {}
        self.vehicle_type = None
        self.vehicle_name = None
        from MAVProxy.modules.lib.mp_settings import MPSettings, MPSetting
        self.settings = MPSettings(
        ....

在 mp_settings.py 中:

 #!/usr/bin/env python

class MPSetting:                                                            
    ....
class MPSettings(object):
    ....

只有mp_settings.py中的MPSetting不能导入, MPSettings 可以成功导入。

我尝试将导入代码从类内部移动到程序顶部,但仍然出现相同的错误:

ImportError: 无法导入名称 MPSetting

有什么建议我接下来应该尝试什么?

【问题讨论】:

    标签: python python-2.7 import


    【解决方案1】:
    1. mp_settings.py 可以有一个属性__all__。也许您需要在其中包含MPSetting

    2. 你们有循环进口吗?尝试在文件开头导入所有重要的内容。

    3. 可能模块中的类被删除了?

    【讨论】:

    • 谢谢,我在mp_settings.py 中添加了__all__ = [MPSetting,MPSettings] 并将import 放在mavproxy.py 的开头,但仍然是同样的错误。如果我使用from MAVProxy.modules.lib.mp_settings import *,则错误变为NameError: global name 'MPSetting' is not defined。我认为不包括 MPSetting 应该是同一个问题。我如何检查模块中的类是否已删除?对不起,我是python的新手。
    • 谢谢,问题解决了。还有一个文件setup.py我没注意,需要先运行才能搭建运行环境。
    【解决方案2】:

    如果我不使用 sudo 执行,mavproxy.py 会出现这个问题。

    执行此操作可缓解错误:sudo mavproxy.py --master=/dev/ttyUSB0 --baudrate=57600

    我让它在 RPI3 上运行并按照此处的说明进行安装:http://ardupilot.github.io/MAVProxy/html/getting_started/mavbridge.html

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 2014-09-27
      相关资源
      最近更新 更多