本文介绍了评估导入模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法使用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__.

这篇关于评估导入模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-18 12:25