Call a function from another file?

StackOverflow

Set_up: I have a .py file for each function I need to use in a program.

In this program, I need to call the function from the external files.

I"ve tried:

from file.py import function(a,b)

But I get the error:

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

How do I fix this problem?

Answer rating: 717

There isn"t any need to add file.py while importing. Just write from file import function, and then call the function using function(a, b). The reason why this may not work, is because file is one of Python"s core modules, so I suggest you change the name of your file.

Note that if you"re trying to import functions from a.py to a file called b.py, you will need to make sure that a.py and b.py are in the same directory.

Answer rating: 249

First of all you do not need a .py.

If you have a file a.py and inside you have some functions:

def b():
  # Something
  return 1

def c():
  # Something
  return 2

And you want to import them in z.py you have to write

from a import b, c

Answer rating: 82

You can do this in 2 ways. First is just to import the specific function you want from file.py. To do this use

from file import function

Another way is to import the entire file

import file as fl

Then you can call any function inside file.py using

fl.function(a,b)

Answer rating: 66

If your file is in the different package structure and you want to call it from a different package, then you can call it in that fashion:

Let"s say you have following package structure in your python project:

Python package and file structure

in - com.my.func.DifferentFunction python file you have some function, like:

def add(arg1, arg2):
    return arg1 + arg2

def sub(arg1, arg2) :
    return arg1 - arg2

def mul(arg1, arg2) :
    return arg1 * arg2

And you want to call different functions from Example3.py, then following way you can do it:

Define import statement in Example3.py - file for import all function

from com.my.func.DifferentFunction import *

or define each function name which you want to import

from com.my.func.DifferentFunction import add, sub, mul

Then in Example3.py you can call function for execute:

num1 = 20
num2 = 10

print("
 add : ", add(num1,num2))
print("
 sub : ", sub(num1,num2))
print("
 mul : ", mul(num1,num2))

Output:

 add :  30

 sub :  10

 mul :  200




Tutorials