Оператор импорта для скрипта Python как часть отдельного репо и как подмодуль - PullRequest
0 голосов
/ 31 октября 2019

У меня есть коллекция скриптов Python в репозитории Git, которая называется utils.

utils
 |__ copy_files.py
 |__ clear_dirs.py
 |__ main.py

Файл main.py импортирует функции и классы из других скриптов.

Это репо также существуеткак подмодуль другого репозитория Git, скажем ABC как в

ABC
 |__ abcmain.py
 |__ utils
      |__ copy_files.py
      |__ clear_dirs.py
      |__ main.py

Файл abcmain.py будет импортировать функции из main.py.

Так что сценарии utils будут работать какв качестве отдельного репо, а также в качестве подмодуля, я должен использовать следующую инструкцию для импорта в main.py.

# main.py
try:
    from utils import copy_files as cpf
except:
    import copy_files as cpf

Если я вызываю несколько модулей в каталоге utils, мне понадобится несколько блоков try-кроме. Есть ли более Pythonic способ сделать это?

Я пробовал относительный импорт, но они не работают при вызове из abcmain.py.

...