python eval('import foo') 引发 SyntaxError

python eval('import foo') raises SyntaxError

我的代码结构:

/foo
    __init__.py
    bar.py

init.py

import bar
eval("import bar")

执行第二行时抛出SyntaxError

>>> 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

exec("import bar")