如何导入上面的目录中的Python类?
我想从位于当前目录之上的文件中的类inheritance。
是否有可能相对导入该文件?
在包层次结构中,使用两个点,如导入语句 doc所示:
指定要导入的模块时,不必指定模块的绝对名称。 当一个模块或包被包含在另一个包中时,可以在相同的顶层包中进行相对导入,而不必提及包名。 通过在指定的模块或包之后使用前导点,可以指定向上遍历当前包层次结构的高度,而不指定确切的名称。 一个引导点意味着导入模块存在的当前包。 两点意味着一个包级别 。 三个点是两个级别,所以如果你执行
from . import mod从pkg包中的模块from . import mod,然后您将最终导入pkg.mod。 如果from ..subpkg2 import mod内的from ..subpkg2 import mod执行from ..subpkg2 import mod则将导入pkg.subpkg2.mod。 相对import的规格包含在PEP 328中 。
PEP 328涉及绝对/相对import。
  @ gimel的答案是正确的, 如果你能保证他提到的包层次结构。 如果你不能 – 如果你真正的需求是你所expression的,只与目录绑定,而且与包装没有任何必要的关系 – 那么你需要在__file__上找出父目录(几个os.path.dirname调用会做;-),然后(如果该目录不是已经在sys.path )prepend临时插入所述目录在sys.path开头, __import__ ,再次删除所述目录 – 确实凌乱的工作,但是, “当你必须的时候,你必须”(而且Pyhon努力不要停止程序员做必须做的事 – 就像ISO C标准在序言中的“C精神”部分所说的那样)。 
以下是一个可能适用于您的示例:
 import sys import os.path sys.path.append( os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) import module_in_parent_dir 
 import sys sys.path.append("..") # Adds higher directory to python modules path. 
 from .. import module # Import module from a higher directory. 
我相信,当你的代码全部包含在一个模块中的时候,你总是可以引用这个模块作为顶级命名空间。
 foo/ __init__.py bar/ __init__.py baz/ __init__.py 
。
 foo/baz/__init__.py #!/usr/bin/env python2 import foo # or from foo import bar