[英]Python Import a module which it itself import another file
我有一个名为 x.py 的 python 文件,它导入另一个名为 y.py 的文件。 y.py 本身导入 z.py,y.py 和 z.py 在同一目录中,但 x.py 在父目录中。 当我在 y.py 中使用相对导入时,例如import .z
y 不起作用而 x 起作用。 当我将 import 更改为import z
y.py 工作但 x.py 不起作用
dic1
|__x.py
|__dic2
|__y.py
|__z.py
x imports y
y imports z
有什么解决方案可以导入一个python文件,该文件在不同的目录中导入另一个文件。
Python 中的包需要在它们的根目录下有一个__init__.py
文件。 在这里,我对什么是包以及什么是根目录感到有些困惑。
我会有这样的事情:
<root_directory>
|__ setup.py
|__ <other top level files>
|__ dic1/
|__ __init__.py
|__ x.py
|__ dic2/
|__ y.py
|__ z.py
您已将其标记为python
,所以我不知道您使用的是 Python2 还是 Python3。 鉴于前者已结束,您应该真正使用 Python3。
您可以导入与根包相关的内容,在本例中为dic1
。
如果使用 python2,你需要在每个文件的顶部from __future__ import absolute_import
。
x.py
from dic1.dic2 import y
y.py
from dic1.dic2 import z
感谢 Blueteeth 和 Sofian 的回复。 为我不完整的问题道歉,我想我无法说出确切的点。
最后,我用
在 y.py 中import sys sys.path.insert(0, "dic2")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.