Динамический импорт модуля с использованием imp - PullRequest
18 голосов
/ 11 февраля 2011

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

Вот код, который у меня есть в моем тестовом скрипте (который выполняется в родительском каталоге для 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

Ответы [ 2 ]

32 голосов
/ 11 февраля 2011

imp.load_source для импорта требуется путь к файлу + имя модуля, вам следует сменить источник на следующий:

mod = imp.load_source("bar","./foo/bar.py")
2 голосов
/ 11 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...