python 无法导入嵌套模块

python can't get nested modules being imported

我有下一个文件夹结构(顺便说一句 Python 3.7):

roots_folder/                     
    main.py/                
    vk/              
        vk.py
    sa/
        sa.py

main.py 文件是这样的:

...
import vk

def main():
    vk.test()   ---->  module 'vk' has no attribute 'test'

if __name__ == '__main__':
    main()

vk.py 文件本身:

def test():
    print('test worked')

我无法理解所有这些重要事物背后的逻辑。我已经根据许多其他答案尝试了许多变体,但它根本行不通。

如果有人可以提出某种解决方案或指出它通常应该如何工作,我将不胜感激!

import 将尝试调用模块中的 _ _ init _ _.py 文件。但是,您既没有该文件,也没有调用 vk.py 文件。

只需将您的 vk.py 重命名为 _ _ init _ _.py 对我有用。

有关导入系统工作方式的更多信息,请查看文档:https://docs.python.org/3/reference/import.html