Python ImportError:无法从文件导入

时间:2014-05-04 10:35:31

标签: python python-2.7 import

我正在尝试编译MAVProxy

正在运行

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

返回错误

  

追踪(最近一次呼叫最后一次):

     

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

     

mpstate = MPState()

     

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

中      

来自MAVProxy.modules.lib.mp_settings导入MPSettings,MPSetting

     

ImportError:无法导入名称MPSetting

  1. 有__ init __。py

  2. 目录架构是

  3.   

    MAVProxy \

         

    | - __ init __。py

         

    | - mavproxy.py

         

    | - (其他档案

         

    | - modules \

       |- __ 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

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

2 个答案:

答案 0 :(得分:0)

  1. mp_settings.py可以拥有属性__all__。也许你需要在那里加入MPSetting

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

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

答案 1 :(得分:0)

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

执行此操作可以缓解错误:n

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