2011-02-11 14 views
15

का उपयोग करके गतिशील रूप से एक मॉड्यूल आयात करना मैं गतिशील रूप से एक अलग निर्देशिका से एक मॉड्यूल आयात करने की कोशिश कर रहा हूं। मैं this question से एक उत्तर का पालन कर रहा हूं। मेरे पास foo नामक निर्देशिका में बार नामक मॉड्यूल है। मुख्य स्क्रिप्ट पैरेंट निर्देशिका में foo करने के लिए चल रहा है।आईपी

यहाँ bar.py

#bar.py 
class bar: 

    def __init__(self): 
      print "HELLO WORLD" 

लेकिन जब मैं के लिए कोड मैं अब तक अपने परीक्षण लिपि में है (जो मूल निर्देशिका में चल रहा है foo के लिए)

#test.py 
import imp 

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

और कोड है 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

उत्तर

26

imp.load_source, आयात करने के लिए मॉड्यूल के पथ नाम + फ़ाइल नाम की आवश्यकता है आप नीचे एक के लिए अपने स्रोत बदलना चाहिए:

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

एक सरल पथ समस्या प्रतीत होता है - जाँच __file__ या cwd ... शायद पहले एक पूर्ण फ़ाइल पथ आज़माएं? - यह imp example मदद कर सकता है।

संबंधित मुद्दे