Чтобы импортировать класс из другого файла в Python, используйте метод sys.path.append(). sys.path.append() — это встроенный метод с переменной пути для добавления определенного пути для поиска интерпретаторами. Он принимает path в качестве аргумента.
Чтобы импортировать файлы из другой папки, добавьте путь Python во время выполнения, используя метод sys.path.append(), который включает такие местоположения, как пакет. Вам нужно добавить среду выполнения пути Python с помощью метода sys.path.append(), после чего будет разрешен путь к импортируемому файлу.
Импорт файлов из одной папки в другую в Python — сложная задача, и по умолчанию вы не можете этого сделать, а если попытаетесь, то получите ошибку. Причина в том, что Python ищет только в каталоге, из которого выполняется сценарий точки входа.
sys — это встроенный модуль, который содержит параметры, специфичные для системы.
Пример импорта класса в Python
В нашем текущем каталоге рабочего проекта есть папка с именем libs, а внутри этой папки находится один файл Python с именем add.py. Мы хотим использовать этот файл add.py в нашем файле app.py.
Напишите следующий код в файле add.py.
|
1 2 |
def sum(x, y): return x + y |
Как следует из названия, он вернет сложение двух чисел.
Откройте основной файл программы app.py и добавьте следующий код.
|
1 2 3 4 |
import sys sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs") |
Здесь мы добавляем время выполнения пути с помощью метода sys.path.append() и передаем путь назначения, в который мы поместили наш файл класса add.py.
Теперь мы можем импортировать файл add.py, поскольку теперь интерпретатор Python будет знать, где искать файл класса.
|
1 2 3 4 5 |
import sys sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs") from add import sum |
Мы импортируем функцию sum() непосредственно из модуля добавления.
|
1 2 3 4 5 6 7 |
import sys sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs") from add import sum print(sum(5, 6)) |
Выход
|
1 |
11 |
Вот и все. Мы успешно импортировали файл в нашу программу и отлично его использовали. Этот подход отлично работает, когда вы хотите импортировать из «родственного» каталога, то есть один вверх, один вниз.
Импорт класса из пакета в Python
Чтобы импортировать класс из пакета, используйте следующий код.
|
1 |
from application.app.folder.file import function_name |
Пожалуйста, убедитесь, что папка пакета содержит файл __init__.py, который позволяет включить его как пакет. Но когда необходимо изменить путь Python, вам нужно использовать описанный выше подход.
Если вы структурируете свои файлы как пакеты, этот подход будет эффективным. В противном случае первый подход будет очень полезен. Используйте в соответствии с вашими требованиями.
