简体   繁体   中英

Jupyter notebook - can't import python functions from other folders

I have a Jupyter notebook, I want to use local python functions from other folders in my computer. When I do import to these functions I get this error: "ModuleNotFoundError: No module named 'xxxxxxxxxxxxx'

  • I'm using anaconda as the python interpreter

You can add a path using sys to your local module/python file.

import sys
sys.path.append("/path/to/file/")  # path contains python_file.py

import python_file

If you want a more permanent solution by adding module to Anaconda path, see previous answer from cord-kaldemeyer https://stackoverflow.com/a/37008663/7019148 . Content copied below for completeness:

I found two answers to my question in the Anaconda forum:

1.) Put the modules into into site-packages, ie the directory $HOME/path/to/anaconda/lib/pythonX.X/site-packages which is always on sys.path. This should also work by creating a symbolic link.

2.) Add a .pth file to the directory $HOME/path/to/anaconda/lib/pythonX.X/site-packages. This can be named anything (it just must end with .pth). A .pth file is just a newline-separated listing of the full path-names of directories that will be added to your path on Python startup.

Both work straightforward and I went for the second option as it is more flexible.

*** UPDATE:

3.) Create a setup.py in the folder of your package and install it using pip install -e /path/to/package which is the cleanest option from my point of view because you can also see all installations using pip list.

Thanks anyway!

look, on python 2.7 it will be work, but on python 3 you get some errors...

if you write some functions in other file, you need import this file. if this file in the same folder - it is good. but if in sub folder... in sub folder you need create empty file init .py
and now, if you will try import your module from sub file - also will be work

impotent (for python 3) :
use this code

 import os import sys sys.path.append(os.getcwd() + '/modules') import my_module 

If you aren't already, try using the full pathname of the function in your code.

from Folder1.Folder2.FileName import ModuleName

someVar = ModuleName(params)

Folder1 would be a folder in the same directory as your main program. Also, create an empty file called __init__.py in every folder you import from.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM