0

ユーザーにいくつかのモジュールをインポートし、そのレベルで利用可能なインポートされたモジュールを使用して Python インタープリターにドロップする Python スクリプトをユーザーに提供したいと思います。うまくいくかもしれないと思ったコードがいくつかありますが、そうではないようです:

module_list = ['module_a','module_b']

# Import our common modules
for module in module_list:
try:
    print "Importing: {0}".format(module)
    exec("import {0}".format(module))
except:
    print "FYI we failed importing {0}. It will not be available for you to use".format(module)              

したがって、スクリプトが完了すると、ユーザーが実行できる python モジュールにドロップされます。

>>> module_a.run()
4

3 に答える 3

1

コンソールが実行されるローカル コンテキストを含む辞書を使用code.InteractiveConsole()して渡すことができます。localsそこにモジュールを保存することで、対話型シェルで簡単に利用できるようになります。

于 2013-04-18T06:20:09.040 に答える
0

私が触れて読んだ多くのコメントのアドバイスに反して__main__、私はそれをしました。

だからここに私のために働いたコードがあります:

module_list = ['module_a','module_b']

# Import our modules
for name in module_list:
     try:
         __import__(name)
        if name in sys.modules:
            setattr(__main__, name, sys.modules[name])
     except:
        print "FYI we failed importing {0}. It will not be available for you to use".format(name)
于 2013-04-20T06:01:23.320 に答える
0

私があなただったら、私はこれをしません..しかし

import imp

module_list = ['module_a','module_b']

for name in module_list:
    try:
        module_info = imp.find_module(name)
        globals()[name] = imp.load_module(name, *module_info)
    except:
        "Import error: %s" %name

たとえば、上記のコードファイルを保存し、次のようにスイッチでimptest.pyロードします-i

python -i imptest.py
于 2013-04-18T06:22:41.027 に答える