web-dev-qa-db-ja.com

モジュールをインポートするためのeval

eval()関数を使用してモジュールをインポートできません。

したがって、私は_import vfs_tests as v_を実行すると機能する関数を持っています。ただし、eval()のようにeval('import vfs_tests as v')を使用して同じインポートを行うと、構文エラーがスローされます。

これはなぜですか?

21
Siddharth

execを使用:

_exec 'import vfs_tests as v'
_

evalは式でのみ機能し、importはステートメントです。

execはPython 3の関数です:exec('import vfs_tests as v')

文字列を使用してモジュールをインポートするには、importlibモジュールを使用する必要があります。

_import importlib
mod = importlib.import_module('vfs_tests')
_

Python 2.6以前では、___import___を使用します。

44