Python导入一个模块,该模块本身会导入另一个文件

时间:2020-01-28 08:25:35

标签: python import

我有一个名为x.py的python文件,该文件导入了另一个名为y.py的文件。 y.py本身导入的z.py,y.py和z.py在同一目录中,而x.py在父目录中。 当我在y.py中使用相对导入时import .z y不起作用,x起作用。当我将导入更改为import z时,y.py有效,但x.py不起作用

dic1  
    |__x.py
    |__dic2
         |__y.py
         |__z.py

x imports y
y imports z

有什么解决方案可以导入python文件,该文件可以在不同目录中导入另一个文件。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

感谢Blueteeth和Sofian的回复。对于我未完结的问题表示歉意,我想我无法说出确切的意思。

最后我用了
import sys sys.path.insert(0, "dic2") 在y.py

相关问题