尝试在不同路径中导入模块时的Python ImportError

时间:2015-03-03 13:35:52

标签: python

我是python编程的新手,我遇到了这个错误:

Traceback (most recent call last):
File "ultrasonicExample.py", line 7, in ?
    from concretesensor.hcsr04 import HCSR04
ImportError: No module named concretesensor.hcsr04

这是我的应用结构:

sensorPy/
        src/                                       
            abstractclass/                  
                  __init__.py
                 ultrasonicSensor.py
              ...
          concretesensor/                 
                  __init__.py
                  hcsr04.py
              ...
          examples/                 
                  __init__.py
                  ultrasonicExample.py

我的__init__.py在abstractclass下:

from abstractclass.ultrasonicSensor import UltrasonicSensor

我的__init__.py在具体传感器下:

from concretesensor.hcsr04 import HCSR04

我也骗了我的sys.path:

>>> import sys
>>> from pprint import pprint as p
>>> p(sys.path)
['',
 ...
 '/home/pi/Documents/sensorPy/src',
...
 ]
>>> 

im ultrasonicExample.py我这样做:

from concretesensor.hcsr04 import HCSR04
我在hcsr04.py中的

from abstractclass.ultrasonicSensor import UltrasonicSensor

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的concretesensor必须在PYTHONPATH variable。替代(和更好)方式是添加sys.path的路径:

import sys
sys.path.append("/my/path")

尝试插入sys.pathread about

的相对路径
sys.path.append("../..") #root of application

并在根应用程序目录中编写__init__.py