python eval(“import foo”)引发语法错误

python eval('import foo') raises SyntaxError

本问题已经有最佳答案,请猛点这里访问。

我的代码结构:

1
2
3
/foo
    __init__.py
    bar.py

英利

1
2
import bar
eval("import bar")

当执行第二行时,它会提升SyntaxError

1
2
3
4
5
6
7
8
9
>>> import foo
Traceback (most recent call last):
  File"<stdin>", line 1, in <module>
  File"foo/__init__.py", line 2, in <module>
    eval('import bar')
  File"<string>", line 1
    import bar
         ^
SyntaxError: invalid syntax

我很困惑,因为我希望这些代码的行为应该是相同的。


如果要导入模块,可以使用exec

1
exec("import bar")