python не может получить импортируемые вложенные модули - PullRequest
0 голосов
/ 25 апреля 2020

У меня следующая структура папок (кстати 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')

Я не могу понять логи c, стоящие за всем этим импортом. Я перепробовал много вариантов, основанных на множестве других ответов, но он просто не работает.

Если бы кто-то мог предложить какое-то решение или указать мне, как оно обычно должно работать, я был бы очень благодарен!

1 Ответ

1 голос
/ 25 апреля 2020

import попытается вызвать файл _ _ init _ _.py внутри модуля. Однако у вас нет этого файла и он не вызывает файл vk.py.

Просто переименование вашего vk.py в _ _ init _ _.py мне помогло.

Для получения дополнительной информации информацию о том, как работает система импорта, смотрите в документации: https://docs.python.org/3/reference/import.html

...