如何修复相对导入python问题

时间:2019-05-07 18:19:28

标签: python file import

我想导入父文件夹中的文件,并且我不想使用 sys

我的文件:

import/
   sub_folder/
       x.py
   a.py

文件a.py:

def spam():
    print "gg"

文件x.py:

from .. import a

def main():
    a.spam()

if __name__ == "__main__":
    main()

这是错误- 尝试以非打包方式进行相对导入

我尝试了一切,但无济于事

1 个答案:

答案 0 :(得分:0)

相对导入不适用于作为主文件执行的文件。

相对导入取决于__name__属性-如果您直接执行该文件,则该属性设置为__main__

您需要将该文件作为包执行

python -m import.sub_folder.x

并且您需要在文件夹中放置一些__init__.py文件,以使python将其识别为包