[英]How do I set the filename of a module in Python so that exceptions that occur in the module use that filename?
我正在使用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
我嘗試將模塊上的文件屬性設置為有意義,但是<string>
文件名仍用於異常回溯中。
關於如何指定異常中使用的文件名的任何想法?
更新:我正在使用像這樣的小鬼: 動態模塊導入正在嘗試做相對導入時不應該
文件名在exec()
產生的代碼對象中設置。 不應將exec()
與字符串一起使用,而應使用compile()
來分別編譯代碼。 這樣,您可以設置文件名:
code = compile(file_contents, '/your/filename.py', 'exec')
exec(code, mod.__dict__)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.