如果通过函数导入,则使用`exec`导入的模块不可用。

时间:2018-10-28 10:47:14

标签: python python-import

在Python 3中,当我在全局范围内使用exec导入模块时,它可以工作。但是当我在函数中执行此操作时,即使没有导入错误,Python也无法识别模块名称。

在全局范围内成功导入和使用 sys

>>> sys.argv
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sys' is not defined
>>> exec('import sys')
>>> sys.argv
['']

没有导入错误,尽管不能使用从函数导入的os

>>> def import_os():
...   exec('import os')
...   os.listdir('.')
...
>>> import_os()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in import_os
NameError: name 'os' is not defined
>>>

有什么主意如何在函数中完成这项工作?

0 个答案:

没有答案