在Python3中使用带有导入的pdb

在Python3中使用带有导入的pdb,python,python-3.x,Python,Python 3.x,这可能只是学习从Python2迁移到Python3的痛苦,但当我开发模块并部署它时,我经常发现自己在命令行中调试该模块的初始化,或者使用类似于以下内容的空闲: import pdb pdb.run("import mymodule") 在Python2中执行此操作时,由于它是一个内置函数,因此我进入调试器并开始遍历我的文件。在Python3中,由于import现在重定向到importlib模块,importlib模块的_引导文件始终显示为冻结状态,因此我看不到pdb在代码中的位置。我发现确保我

这可能只是学习从Python2迁移到Python3的痛苦,但当我开发模块并部署它时,我经常发现自己在命令行中调试该模块的初始化,或者使用类似于以下内容的空闲:

import pdb
pdb.run("import mymodule")

在Python2中执行此操作时,由于它是一个内置函数,因此我进入调试器并开始遍历我的文件。在Python3中,由于import现在重定向到importlib模块,importlib模块的_引导文件始终显示为冻结状态,因此我看不到pdb在代码中的位置。我发现确保我进入模块代码的唯一方法是在模块中放置
pdb.set_trace()
,我不希望这样做。有没有办法不用
set\u trace
进入我的模块?

导入pdb到底有什么问题;pdb.set_trace()作为模块中的第一行?我不确定使用它是否有什么严重问题,这不是我的习惯,我更喜欢一种不需要在使用模块时添加或删除模块中的行的方式。我编写并维护了许多包装外部库的模块,因此当我将它们部署到生产系统上并在Windows上处理dll地狱时,我通常会使用这些模块。