8

Как вызвать функцию из другого .py файла?

3

Описание проблемы:

Я пытаюсь импортировать функцию из файла Python, но сталкиваюсь с ошибкой. У меня есть файл с именем file.py, который содержит функцию с названием function. Мой код для импорта выглядит следующим образом:

from file.py import function(a, b)

Однако при выполнении этого кода возникает ошибка:

ImportError: No module named 'file.py'; file is not a package

Как правильно импортировать функцию из файла file.py? Есть ли особенности в синтаксисе импорта Python, которые я должен учитывать? Буду благодарен за помощь!

5 ответ(ов)

8

Сначала импортируйте function из file.py:

from file import function

Позже вызовите функцию следующим образом:

function(a, b)

Обратите внимание, что file является одним из основных модулей Python, поэтому я рекомендую изменить имя файла file.py на что-то другое.

Также учтите, что если вы пытаетесь импортировать функции из a.py в файл под названием b.py, убедитесь, что a.py и b.py находятся в одной директории.

3

Когда вы импортируете из другого файла, не добавляйте расширение .py в имени файла.

Предположим, что file_a.py содержит некоторые функции:

def f():
    return 1

def g():
    return 2

Чтобы импортировать эти функции в file_z.py, сделайте следующее:

from file_a import f, g
1

Метод 1. Импортируйте конкретную функцию из файла file.py:

from file import function

Метод 2. Импортируйте весь файл:

import file as fl

После этого, чтобы вызвать любую функцию из file.py, используйте:

fl.function(a, b)
0

Вы можете вызвать функцию из другого каталога, если по каким-то причинам не хотите или не можете иметь её в том же каталоге, в котором вы работаете. Существует два способа сделать это (возможно, есть и другие альтернативы, но эти методы работали для меня).

Альтернатива 1
Временно измените текущий рабочий каталог:

import os

os.chdir("**Укажите здесь путь к каталогу, где находится ваш файл с функцией**")

from file import function

os.chdir("**Укажите здесь путь к каталогу, в котором вы работали**")

Альтернатива 2
Добавьте каталог, в котором находится ваша функция, в sys.path:

import sys

sys.path.append("**Укажите здесь путь к каталогу, где находится ваш файл с функцией**")

from file import function

Оба метода позволят вам импортировать функцию из другого каталога, так что выбирайте тот, который удобнее для вашего случая!

0

Чтобы устранить ошибку

ModuleNotFoundError: No module named

попробуйте использовать точку (.) перед именем файла для выполнения относительного импорта:

from .file import function

Это должно помочь Python правильно найти и импортировать необходимый модуль.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь