Как импортировать модуль Python в тот же корневой каталог, но в другой подкаталог? - PullRequest
0 голосов
/ 25 января 2019

У меня есть несколько файлов Python в родительской папке с именем «API», и я пытаюсь связать их вместе:

API / авториз / module1.py
API / подпапка / prgm.py

От родительских до дочерних папок у меня есть файл init .py, содержащий пути или имена программ для вызова, однако, когда я иду к выполнению /subfolder/prgm.py, который вызывает чтобы импортировать 'module1.py', я получаю следующую ошибку при выполнении:

machine01% ./prgm.py
Traceback (most recent call last):
  File "./prgm.py", line 2, in <module>
    from API.auth.module1 import authFunction
ModuleNotFoundError: No module named 'API'

Это оператор import, который у меня есть в 'prgm.py':

from API.auth import module1

Этот вопрос немного отличается от предыдущих, потому что я пытаюсь получить скрипт Python, который уже находится в одной подпапке, для доступа к модулю в другой подпапке, но в той же родительской папке «API». Предыдущие вопросы касались того, что скрипт python базировался в родительской папке, и вызывал модули, расположенные в подпапках.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Если вам действительно нужно запустить API / subfolder / prgm.py, который в свою очередь импортирует API / auth / module1.py

В prgm.py вы можете добавить родительский каталог (который является «API») в sys.path следующим образом:

import os, sys, inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir)

И теперь вы можете импортировать все что угодно из «API»:

from auth import module1
0 голосов
/ 25 января 2019

попробовать "" "из. Auth import module1" "" может быть?

...