'File "<string>"' 在 python 调试器和回溯中代表什么?

What does 'File "<string>"' stands for on python debugger and traceback?

最终,当我在调试会话中时,当前文件被命名为“”。我希望看到的是调试器当前所在的模块的名称。

同样的情况发生在回溯上:

Traceback (most recent call last):
  ...
  File "~/project_x/app/services/contacts.py", line 23, in find_account
  account = self._account_repo.get_by_id(id)
  File "<string>", line 2, in get_by_id
  File "~/project_x/lib/python3.7/site-packages/pony/orm/core.py", li
ne 528, in new_func
    result = func(*args, **kwargs)

这意味着代码不是来自文件,而是来自字符串。我的猜测是 exec() 调用,但也许还有其他方法可以获得相同的效果。之前的堆栈帧可能会提供一些线索。