У меня есть приложение python, которое имеет структуру каталогов, подобную этой.python __import __() импортирует из двух разных каталогов, когда тот же модуль существует в 2-х местах
-pythonapp
-mainpython.py
-module1
-submodule1
-file1.py
-file2.py
-submodule2
-file3.py
-file3.py
-submodule3
-file1.py
-file2.py
-file5.py
-file6.py
-file7.py
, когда я пытаюсь импортировать утилиты Python (от mainpython.py) под submodule3, я получаю первые 2 файла из submodule1. (Обратите внимание, что submodule1 и 3 имеют 2 разных файлов с тем же именем). Однако тот же импорт отлично работает, когда нет конфликта, то есть он правильно импортирует файл 5,6,7 из подмодуля3.
Вот код:
name=os.path.splitext(os.path.split("module1\submodule3\file1.py")[1])[0] --> file1.py name here is passed dynamically.
module = __import__(name)
// Вот это имя, как «file1» он работает (но с выше указанным вопросом, хотя, когда передает имя файла динамически), но если Я передаю полный пакет как «module1.submodule1.file1», он терпит неудачу с помощью ImportError, в котором говорится, что «нет модуля с именем file1»
Теперь вопрос в том, как сказать интерпретатору использовать только те, что указаны в разделе «module1.submodule3» .file2" ? Я использую python
Это действительно актуально, и у меня закончились все попытки. Надеюсь, что некоторые опытные разработчики python могут решить это для меня?
Можете ли вы переформатировать свой вопрос? –
Почему вы используете '__import__'? Почему не просто 'from module1.submodule3 import filex'? – aaronasterling