2016-10-14 6 views
-1

別のフォルダにある文字列(パス)からスクリプトをインポートして実行する必要があります。入力は完全に動的である必要があります。以下のコードは、ファイルが同じフォルダにある場合でも動作しますが、ファイルが他の場所にある場合は動作しないようです。Python:文字列から別のフォルダにスクリプトを動的にインポートする

main.py

path = 'bin\TestScript' 

module = __import__(path) 

my_class = getattr(module, '__main__') 

instance = my_class(3,16) 

print(instance) 

TestScript.py

def __main__(a,b): 

    return(a*b) 

errrorゲット: はImportError:名前のないモジュールのビンを\\にTestScript「

のWindows OS上

+1

それでは、まさに問題は何ですか?間違いはありますか? – RvdK

+0

あなたはどちらを使用していますか? –

+0

errrorを取得してください:ImportError: 'bin \\ TestScript'というモジュールがありません – Patrick

答えて

1

ディレクトリをモジュール名から切り離し、それをthに追加する必要がありますeモジュール検索パス。例:

import os.path 
import sys 

path = 'bin\\TestScript' 
mdir = os.path.dirname(path) 
modname = os.path.basename(path) 
sys.path.append(mdir) 

module = __import__(modname) 

my_class = getattr(module, '__main__') 

instance = my_class(3,16) 

print(instance) 

代わりに、ディレクトリ "bin"をパッケージにすることもできます。

+0

あなたは伝説です!完全に動作します、ありがとうヒープ:) – Patrick

関連する問題