Импорт модуля динамически с использованием imp

Я пытаюсь импортировать модуль из другого каталога динамически. Я следую ответу этого вопроса. У меня есть модуль с именем bar в каталоге с именем foo. Основной script будет запущен в родительском каталоге для foo.

Вот код, который у меня есть до сих пор в моем тесте script (который запущен в родительском каталоге для foo)

#test.py
import imp

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

и код для bar.py

#bar.py
class bar:

    def __init__(self):
          print "HELLO WORLD"

Но когда я запускаю test.py, я получаю эту ошибку:

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

Ответы

Ответ 1

imp.load_source требуется имя файла пути/файла модуля для импорта, вы должны изменить свой источник ниже:

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

Ответ 2

Появляется как простая проблема - проверьте __file__ или cwd... Возможно, сначала попробуйте абсолютный путь к файлу? - Этот пример примера может помочь.