I defined a hello world function in a file called 'functions.ipynb'. Now, I would like to import functions in another file by using "import functions". I am sure that they are in the same folder. However, it still shows that "ImportError: No module named functions". By the way, I am using jupyter notebook. Thanks a lot!
You'll want to use the ipynb package/module importer. You'll need to install it: pip install ipynb
.
Create a Notebook named my_functions.ipynb
. Add a simple function to it.
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
Then, create a second IPython Notebook and import this function with:
from ipynb.fs.full.my_functions import factorial
Then you can use it as if it was in the same IPython Notebook:
testing = factorial(5)
See the documentation for more details.
my_functions
contains some code that I don't want to execute, but only want a function from the file? –
Glottis import ipynb.fs.defs.my_functions
as documented here github.com/ipython/ipynb –
Yolandayolande For my use case the ipnyb import didn't work for some reason. I had to use Jupyter Notebook magic cell to import my function.:
%run MyOtherNotebook.ipynb #this is were my function was stored
function(df) #then simply run the function
You can save functions.ipynb as functions.py and can import the file as import functions
. Now you can use any function defined in the functions file as functions.function_name
For eg, if add is a function,
functions.add(5,3)
after importing will work.
@David Rinck's answer solved the problem, but I'd like to recommend you add the boilerplate __name__ == "__main__"
to guard the scripts you don't want to accidentally invoke. It works the same way as in a usual Python file.
If a .ipynb file a.ipynb is imported by another one b.ipynb
from ipynb.fs.full.a import factorial
the __name__
in a.ipynb would be ipynb.fs.full.a
rather than "__main__"
.
You can use the solution provided by @David Rinck but beware that the ipynb file that you are importing the function from will run as a whole. So it is advisable that the file does not have any code the runs and only has functions that you may need. I tried it myself and the same thing happened to me. An easy solution that I resort to is just make a .py file containing the functions that I need and just import the functions from that file.
© 2022 - 2024 — McMap. All rights reserved.