Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中管理相对导入?_Python - Fatal编程技术网

如何在python中管理相对导入?

如何在python中管理相对导入?,python,Python,我有一个具有以下结构的代码: mainDir/ /foo/ __init__.py /foo/foo.py (i am importing bar here) /__init__.py /bar.py 现在,foo.py有一个类似 from ..bar import * 在mainDir内部,我正在尝试运行:python-mfoo.foo。但我得到了: ValueError:尝试在foo.py中的toplevel包

我有一个具有以下结构的代码:

  mainDir/
         /foo/ __init__.py
         /foo/foo.py  (i am importing bar here)
         /__init__.py
         /bar.py
现在,foo.py有一个类似

from ..bar import *
在mainDir内部,我正在尝试运行:
python-mfoo.foo
。但我得到了:

ValueError:尝试在foo.py中的toplevel包之外进行相对导入以尝试导入bar


我不是在寻找
sys.path
解决方案,而是在创建模块?有什么建议吗?

使用绝对导入:

from bar import *  # though you shouldn't be using import * anyway
相对进口必须保持在一个包内。您不能完全跳出包继承人权限并使用相对导入导入顶级模块