Импорт каталогов ошибок с Python 3.5 и выше - PullRequest
0 голосов
/ 15 октября 2019

Я хочу импортировать модули из папки и подпапки с помощью Python 3.6. В настоящее время у меня есть такая структура.

└── project
    │   main.py
    ├── package1
    │   ├── __init__.py
    │   └── module1.py
    └── package2
        ├── __init__.py
        ├── module2.py

Когда я импортирую module1 и module2, у меня нет проблем с этим.
Внутри main.py, имеющей этот скрипт для импорта обоих модулей.

from package1 import module1
from package2 import module2

Работает нормально!

Но я хочу переместить package2 с модулем2 в подпапку в package1, как показано ниже:

└── project
    │   main.py
    └── package1
        ├── __init__.py
        ├── module1.py
        └── subpackage1
            ├── __init__.py
            ├── module2.py

И хочу вызвать module2 из main.py,Попытка следования по пути и сценариям не решает мою проблему, я получаю ошибку импорта, она не может найти путь.

В main.py, имеющем этот сценарий для импорта обоих модулей.

from package1.subpackage1 import module2

или

from package1.subpackage1.module2 import Class_in_module2

или

sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from package1.subpackage1 import module2

Это неработай. Путь не может быть найден! Любую помощь оцените!

1 Ответ

1 голос
/ 15 октября 2019

Поскольку ключевое слово from принимает иерархию папок и import определенный метод из файла, это должно работать.

from MainFolder.SubFolder.SomeDotPy import foo,bar,somevalue
...