LINUX.ORG.RU

Проблема импорта функций в PYTHON, если папка и файл называются одинаково

 ,


0

1

Есть файл data_export.py и папка data_export в которой лежит файл data_export_expanded.py

folder_name\data_export.py

folder_name\data_export\data_export_expanded.py

мне нужно импортировать в PYTHON func_name1 из data_export.py и func_name2 из data_export_expanded.py

Пробую импортировать

from folder_name.data_export import func_name1

from folder_name.data_export.data_export_expanded import func_name2

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



Последнее исправление: polin11 (всего исправлений: 1)

Что-то типа такого

from importlib.machinery import SourceFileLoader
expanded = SourceFileLoader("expanded", "./folder_name/data_export/data_export_expanded.py").load_module()

expanded.func_name2()

https://docs.python.org/3/library/importlib.html

менять название файлов и папок нельзя, менять расположение тоже

Так не бывает.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от qaqa

__init__.py есть внутри?

Скорее всего нет. Если нет __init__.py, импортировать можно только вручную через imp.load_source().

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 2)
Ответ на: комментарий от qaqa

Уже не обязательно init.py но автор наступает на типичные грабли неопределенности импорта.

anonymous
()

если менять название файлов и папок нельзя, менять расположение тоже

Что за дичь? Почему?

Aswed ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.