python - 如何使用 breakpoint() 启动 PyCharm 的调试器
问题描述
我知道我可以通过设置来设置启动哪个调试器sys.breakpointhook()
,但是为了启动 PyCharm 的 IDE,我应该设置什么?
澄清一下,我希望 PyCharm 的调试器在遇到breakpoint()
内置函数时启动,尤其是当我从 PyCharm 运行程序时。
如果您想知道“当您可以从调试器运行时为什么还要这样做?” 我正在尝试调试一些在使用调试器启动时响应不同的代码。
解决方案
PyCharm 使用 pydevd 调试器https://pypi.org/project/pydevd-pycharm/。因此,假设您要调试在 PyCharm 之外启动的 Python 应用程序,您有两种选择:
- 附加该过程,请参阅https://www.jetbrains.com/help/pycharm/attaching-to-local-process.html#attach-to-local或
- 启动 Pycharm 作为调试服务器,然后从您的应用程序连接到它,请参阅https://www.jetbrains.com/help/pycharm/remote-debugging-with-product.html。
第二个选项可能更接近您的想法,即不是使用设置调试器sys.breakpointhook
,而是安装调试器 pydevd_pycharm.settrace(...)
,然后使用它连接到 PyCharm(您可以在源文件中设置断点)。
通过将 sys.breakpointhook 指向 pydevd 断点挂钩(即指向“Pycharm 调试器”)来安装自定义断点挂钩将由 pydevd 完成(https://github.com/fabioz/PyDev.Debugger/blob/37d804c7ac968694ce29c93392e3bed6fda641f0/pydevd.py #L95,准确地说是第 117 行)。
推荐阅读
- python-3.x - 仅当调用了与该视图核心扩展的模板时,如何在 django 视图中执行 api 调用
- python - 了解自定义登录表单类中的 def clean(self) 方法
- oracle - 如何将此 pl/sql 更改为函数?
- r - 向量对之间的最小绝对差(贪心算法)
- excel - 带有 SUM 的 Excel IF 语句
- excel - Excel:在单元格的索引中引用表格标题
- c - 在 C 中将矩阵提高到 n 次方
- typescript - ES6 代理:设置属性陷阱与去抖动,是否可以避免回调字典?
- python - 将两行合并为一行并转换为 NA
- apache-nifi - NIFI存储可以扩展吗?