19

I am trying to import a module from a different directory dynamically. I am following an answer from this question. I have a module named bar in a directory named foo. The main script will be running in the parent directory to foo.

Here is the code i have thus far in my test script (which is running in the parent directory to foo)

#test.py
import imp

mod = imp.load_source("bar","./foo")

and code for bar.py

#bar.py
class bar:

    def __init__(self):
          print "HELLO WORLD"

But when i run test.py I get this error:

Traceback (most recent call last):
  File "C:\Documents and Settings\user\Desktop\RBR\test.py", line 3, in <module>
    mod = imp.load_source("bar","./foo")
IOError: [Errno 13] Permission denied
Community
  • 1
  • 1
Richard
  • 15,152
  • 31
  • 85
  • 111

2 Answers2

34

imp.load_source requires the pathname + file name of the module to import, you should change your source for the one below:

mod = imp.load_source("bar","./foo/bar.py")
Lucas S.
  • 13,391
  • 8
  • 46
  • 46
2

Appears to be a simple pathing problem - check __file__ or cwd... Maybe try an absolute file path first? - This imp example may help.

Community
  • 1
  • 1
Petriborg
  • 2,940
  • 3
  • 28
  • 49