gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:47:27 25 4
gpt4 key购买 nike

我正在使用 imp 从字符串中导入模块(不要问)图书馆。这一切都工作得很好而且花花公子,但是当这样的模块出现错误时,我会得到这样的堆栈跟踪:

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

我已经尝试将模块上的 file 属性设置为有意义的东西,但是 <string>异常回溯中仍使用文件名。

关于如何指定异常中使用的文件名的任何想法?

更新:我正在使用这样的 imp:Dynamic module importing is trying to do relative imports when it shouldn't

最佳答案

文件名在 exec() 生成的代码对象中设置。而不是将 exec() 与字符串一起使用,您应该使用 compile()单独编译你的代码。这样你就可以设置文件名:

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

关于python - 如何在 Python 中设置模块的文件名,以便模块中发生的异常使用该文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com