如何在Python中设置模块的文件名,以便模块中发生的异常使用该文件名?

2024-03-28 10:16:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用imp库从字符串(不要问)导入模块。这一切都运行得很好,但是当这样一个模块中出现错误时,我会得到这样一个stacktrace:

Traceback (most recent call last):
  File "<string>", line 33, in do_something
  File "<string>", line 20, in really_do_something
Exception: STRING FILENAME EXAMPLE

我尝试过将模块上的文件属性设置为有意义的,但在异常回溯中仍然使用<string>文件名。在

关于如何指定异常中使用的文件名有什么想法吗?在

更新:我使用的imp如下:Dynamic module importing is trying to do relative imports when it shouldn't


Tags: 模块字符串inmoststring文件名错误line
1条回答
网友
1楼 · 发布于 2024-03-28 10:16:18

文件名是在exec()生成的代码对象中设置的。不要将exec()与字符串一起使用,而应该使用^{}分别编译代码。这样可以设置文件名:

code = compile(file_contents, '/your/filename.py', 'exec')
exec(code, mod.__dict__)

相关问题 更多 >