关于python:eval导入模块

eval to import a module

我无法使用eval()功能导入模块。

所以,我有一个函数,如果我执行import vfs_tests as v,它就会起作用。但是,使用eval()的同一导入(如eval('import vfs_tests as v'))会引发语法错误。

为什么会这样?


使用exec

1
exec 'import vfs_tests as v'

eval只适用于表达式,import是一种语句。

exec是python 3中的函数:exec('import vfs_tests as v')

要使用字符串导入模块,应使用importlib模块:

1
2
import importlib
mod = importlib.import_module('vfs_tests')

在python 2.6和早期版本中,使用__import__