通过imp模块手动创建Python 2模块时,如何设置模块的文件信息以改善错误报告?

问题描述

出于这个问题之外的原因,我必须在Python本身中使用以下结构创建一些Python 2模块:

import imp,sys

modname = "mymod"
modcode = """
# Here the module code 
.
.
.
"""

m = imp.new_module(modname)
exec(modcode,m.__dict__)
sys.modules[modname] = m

当我现在执行一些错误mymod函数并且此函数引发错误时,我将得到如下回溯:

Traceback (most recent call last):
  File "/path/to/imp-wrapper.py",line 35,in <module>
    mymod.myfunc()
  File "<string>",line 4,in myfunc
KeyError: 'unit'

如何为模块mymod提供文件信息(通常存储在__file__中,以便回溯引用这样的模块:

 File "mymod",in myfunc

我尝试过

m.__dict__[__file__] = "mymod"

但是它似乎没有在回溯中被拾起。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)