答案在您提供的链接中:
相对导入使用模块的__name__属性来确定该模块在包层次结构中的位置。如果模块的名称不包含任何软件包信息(例如,将其设置为“ main
”),则相对导入的解析就好像该模块是顶级模块一样,无论该模块实际位于文件系统上的哪个位置。
您无法在
__main__脚本中进行相对导入(即,如果直接运行
python in_dir2.py)。
为了解决这个问题,PEP 366允许您执行的 *** 作是设置全局变量
__package__:
import dir1if __name__ == '__main__': __package__ = 'dir1.dir2' from .. import in_dir1
请注意,该包装
dir1仍必须打开
sys.path!您可以 *** 纵
sys.path以实现此目的。但是到那时,您在绝对进口方面取得了什么成就?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)