问题描述
我无法使用eval()
函数导入模块.
I can't import a module using the eval()
function.
因此,我有一个函数,如果我执行import vfs_tests as v
,它将起作用.但是,使用eval()
进行的同一导入(如eval('import vfs_tests as v')
)会引发语法错误.
So, I have a function where if I do import vfs_tests as v
it works. However, the same import using eval()
like eval('import vfs_tests as v')
throws a syntax error.
为什么会这样?
推荐答案
使用exec
:
exec 'import vfs_tests as v'
eval
仅适用于表达式,import
是一条语句.
eval
works only on expressions, import
is a statement.
exec
是Python 3中的一个函数:exec('import vfs_tests as v')
exec
is a function in Python 3 : exec('import vfs_tests as v')
要使用字符串导入模块,应使用importlib
模块:
To import a module using a string you should use importlib
module:
import importlib
mod = importlib.import_module('vfs_tests')
在Python 2.6和更早版本中,使用__import__
.
In Python 2.6 and earlier use __import__
.
这篇关于评估导入模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!