Set_up: У меня есть файл .py для каждой функции, которую мне нужно использовать в программе.
В этой программе мне нужно вызвать функцию из внешних файлов.
Я пробовал:
from file.py import function(a,b)
Но я получаю ошибку:
ImportError: No module named 'file.py'; file is not a package
Как мне решить эту проблему?
Нет необходимости добавлять file.py
при импорте. Просто напишите из файла import function
, а затем вызовите функцию с помощью function(a, b)
. Причина, по которой это может не сработать, заключается в том, что file
является одним из основных модулей Python', поэтому я предлагаю вам изменить имя вашего файла.
Обратите внимание, что если вы пытаетесь импортировать функции из a.py
в файл с именем b.py
, вам нужно убедиться, что a.py
и b.py
находятся в одной директории.
Прежде всего, вам не нужен .py
.
Если у вас есть файл a.py
и внутри него есть несколько функций:
def b():
# Something
return 1
def c():
# Something
return 2
И вы хотите импортировать их в z.py
, то вам нужно написать
from a import b, c
Вы можете сделать это 2 способами. Первый-это просто импорт конкретной функции вы хотите от file.py. Для этого использовать
from file import function
Другой способ заключается в том, чтобы импортировать весь файл
import file as fl
Затем вы можете вызвать любую функцию внутри file.py используя
fl.function(a,b)
Эту функцию можно вызвать также из другого каталога, в случае, если вы не можете или не хотите иметь функцию в той же папке вы работаете. Вы можете сделать это двумя способами (возможно есть еще варианты, но это те, которые работали для меня).
Вариант 1 Временно изменить свой рабочий каталог
import os
os.chdir("**Put here the directory where you have the file with your function**")
from file import function
os.chdir("**Put here the directory where you were working**")
Вариант 2 Добавьте в каталог, где у вас есть ваша функция в sys.путь
import sys
sys.path.append("**Put here the directory where you have the file with your function**")
from file import function
Наткнулся на один и тот же объект, но мне пришлось делать ниже, чтобы заставить его работать.
Если вы видите 'ModuleNotFoundError: нет модуль с именем', вы, вероятно, нужна точка(.) перед именем, как показано ниже;
от .файл фунции импорт
Если ваш файл в другую структуру пакета и вы хотите позвонить из другой упаковки, то можно назвать это так:
Позвольте'ы сказать, что у вас следующую структуру пакета, в ваш проект в Python:
в - ком.мой.Функ.Файл python DifferentFunction
у вас есть какая-то функция, как:
def add(arg1, arg2):
return arg1 + arg2
def sub(arg1, arg2) :
return arg1 - arg2
def mul(arg1, arg2) :
return arg1 * arg2
И вы хотите вызвать различные функции от Example3.py
, то следующим способом вы можете сделать это:
Определить оператор импорта в Example3.py` - файл для импорта все функции
from com.my.func.DifferentFunction import *
или определить имя каждой функции, которые вы хотите импортировать
from com.my.func.DifferentFunction import add, sub, mul
Потом Example3.py вы можете вызвать функцию для выполнения:
num1 = 20
num2 = 10
print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))
Выход:
add : 30
sub : 10
mul : 200
Сначала сохраните файл в формате .py (например, my_example.py
).
И если в этом файле есть функции,
def xyz():
--------
--------
def abc():
--------
--------
В вызывающей функции нужно просто набрать следующие строки.
имя_файла: my_example2.py
============================
import my_example.py
a = my_example.xyz()
b = my_example.abc()
============================
Переименовать модуль в нечто иное, чем 'файл'.
Затем также будьте уверены, когда вы вызываете функцию, которая:
1)Если вы импортируете весь модуль, вы повторить имя модуля при вызове его:
import module
module.function_name()
или
import pizza
pizza.pizza_function()
2)или если вы импортируете специфические функции, функции с псевдонимом, или все функции, используя *, Вы не'т подтвердить имя модуля:
from pizza import pizza_function
pizza_function()
или
from pizza import pizza_function as pf
pf()
или
from pizza import *
pizza_function()
Вы Don'т придется добавить file.py`.
Просто сохранить файл в той же папке с файлом, из которого вы хотите импортировать его. Затем просто импортировать функции:
from file import a, b
Внутри MathMethod.Py.
def Add(a,b):
return a+b
def subtract(a,b):
return a-b
Внутри Main.Py
import MathMethod as MM
print(MM.Add(200,1000))
Выход:1200
Вы должны иметь файл в той же папке, что питона файлы, которые вы пытаетесь импортировать. Также 'из файла функция импорта' вполне достаточно.
добавить точку(.) перед именем файла, если вы хотите импортировать этот файл, который находится в той же папке, где выполняется ваш код.
Например, Я'м работает файл с именем a.ру и я хочу, чтобы импортировать метод, названный addFun, что написано в б.пы, и B.пы есть в том же каталоге
от .B импорт addFun
Предположим, что файл, который вы хотите назвать это anotherfile.py и метод, который вы хотите, чтобы вызов метода Method1, то сначала импортировать файл, а затем способ
from anotherfile import method1
если метод1 является частью класса, пусть класс будет класс1, затем
from anotherfile import class1
затем создать объект класса Class1, предположим, что имя объекта ob1, то
ob1 = class1()
ob1.method1()
в моем случае я назвал свой файл helper.scrap.py и не мог'т заставить его работать, пока я изменил helper.py