2011-02-11 76 views
15

我試圖從不同目錄動態導入模塊。我正在關注this question的答案。我在名爲foo的目錄中有一個名爲bar的模塊。主腳本將在父目錄中運行以獲取foo。使用imp動態導入模塊

下面是代碼我迄今在我的測試腳本(這是在運行父目錄到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 
+0

嘗試使用`imp.load_module`代替 – Blauhirn 2016-03-20 22:36:16

回答

26

imp.load_source要求模塊的路徑名+文件名導入,您應該改變您的來源爲以下之一:

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

看似是一個簡單的尋路問題 - 檢查__file__或cwd ...也許先嚐試一個絕對文件路徑? - 這imp example可能會有所幫助。