Python-未找到模块错误

Python-未找到模块错误,python,import,module,Python,Import,Module,我有这样的结构: F f1 __init__.py f.py g.py f2 __init__.py h.py f2.u u初始_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu f2.h.py: py是一个主文件。当我运行f2时,我得到了错误 ModuleNotFoundError: No module named 'f2' 如何修复此问题?如果直

我有这样的结构:

F
  f1
    __init__.py
    f.py
    g.py
  f2
    __init__.py
    h.py
f2.u u初始_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

f2.h.py:

py是一个主文件。当我运行f2时,我得到了错误

ModuleNotFoundError: No module named 'f2'

如何修复此问题?

如果直接在f2.h.py中运行main,则解释器似乎不是F的父路径

一种选择是使用相对导入,该导入是。 例如,添加F._init__.py文件,然后将F.f2._init__.py更改为from..f1导入F,g,最后在F.f2.h.py导入中作为from F.f2导入F,g

另一个选项是将路径添加到父目标:

import os, sys
sys.path += [os.path.abspath('..')]

from f2 import f, g

if __name__ == '__main__':
    print('hello')

我修好了。正如Jirka B.所说,问题是我从解释器运行directley代码。做了该做的事情后,一切都按我喜欢的方式进行。Thx伙计们。

python版本?@MiloLu 3.7.0是版本为什么从f2导入g而不包含g?我使用了相对导入,这就是我经常遇到的错误。当我做的时候。导入f,g,我得到一个ImportError,上面写着不能从main导入f,当我从。。import f,g我得到一个ValueError,它表示试图在顶级包之外进行相对导入请指定您使用的Python我使用的是Python 3.7.0
ModuleNotFoundError: No module named 'f2'
import os, sys
sys.path += [os.path.abspath('..')]

from f2 import f, g

if __name__ == '__main__':
    print('hello')