Как импортировать модули из каталога python, настроенного таким образом? - PullRequest
1 голос
/ 05 августа 2020

У меня есть такой каталог Python, и я пытаюсь импортировать классы из main_script.py.

 - main_folder
   - main_script.py
 - resources
   - package_folder
     - class_files
       - class1.py
       - class2.py
       - class3.py
       - __init__.py

Это то, что я пробовал

sys.path.append('../resources/package_folder)
from class_files import *

Но я получить эту ошибку: «Нет модуля с именем 'class_files'»

1 Ответ

1 голос
/ 05 августа 2020

У вас есть относительный путь в вашем sys.path, который относится к текущему каталогу процесса, а не к местоположению самого main_script.py скрипта.

Вместо этого вы можете использовать:

import sys
import os

sys.path.append(os.path.join(os.path.dirname(__file__),
                             '../resources/package_folder'))

from class_files import *

или, если хотите:

sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__)),
                             'resources/package_folder'))

По отдельности вы также можете обнаружить, что в вашем __init__.py вам нужно:

__all__ = ['class1', 'class2', 'class3']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...