我正在尋找一種方法來從本地 文件系統上的位置導入模塊,而無需將父目錄附加到 sys.path
。這裏的顯示要求接口例子代碼:從目錄導入模塊而不接觸sys.path
imp = Importer()
imp.add_path(r'C:\pylibs')
foolib = imp.import_('foolib')
print foolib
# <module 'foolib' from 'C:\pylibs\foolib.py'>
我能想到是這樣實現的,但我想知道,如果它是 不需更換的sys.path
變量 temporaribly的解決方法。
import sys
class Importer(object):
def __init__(self):
super(Importer, self).__init__()
self.path = []
def add_path(self, path):
self.path.append(path)
def import_(self, name):
old_path = sys.path
sys.path = self.path
try:
return __import__(name, {}, {})
finally:
sys.path = old_path
如果你想添加一個答案,然後在答案,而不是一個問題,這樣做。我將問題恢復到原來的形式。 –
@DavidHeffernan:正確的答案是來自C0deH4cker的人。我應該在哪裏放置最終代碼? Imho把它變成一個新的答案沒有什麼意義。 –
是的,它把它放在一個新的答案是完全合理的。對於未來的訪問者來說,這是一段很有用的代碼。你已經接受了正確的答案。添加另一個答案來提供更多的幫助是好的,並鼓勵。 –