Sentry 开发者贡献指南 - 配置 PyCharm

简介: Sentry 开发者贡献指南 - 配置 PyCharm

概述



如果您使用 PyCharm 进行开发,则需要配置一些内容才能运行和调试。

本文档描述了一些对 sentry 开发有用的配置


配置



Python 解释器:(确保它是 venv 解释器)例如 ~/venv/sentry/bin/python


image.png


要创建配置(run/debug 配置),只需转到 Run | Edit Configurations...(也可在默认工具栏中使用)。


image.png


Test runner


Sentry 使用 pytest 进行单元测试。

创建 pytest 配置(在 Python tests 下)

设定目标(Set Target): Custom

附加参数(Additional Arguments): tests/sentry


image.png


具有所需一切的 Dev server


用于在所有设置(webworkercron)的情况下运行(非调试):


  • 创建另一个 Python 配置
  • 脚本路径(Script path): <venv dir>/bin/sentry e.g. ~/venv/sentry/bin/sentry
  • 参数(Parameters): devserver --workers
  • Python 解释器(Python interpreter): venv interpreter
  • 工作目录(Working dir): (sentry 安装目录中的 src 路径) e.g. ~/dev/sentry/src

Note: 您将无法使用此配置调试 Web WorkerWeb Worker 是通过调用 uwsgi 服务器启动的)。

image.gif

image.png


使用 PyCharm 进行调试



devserver 命令的存在主要是为了在单独的进程中生成守护进程,这意味着在默认模式下将 debugger 附加到它并不是很有用。


Web server


devserver 命令有一个特殊的标志,它将导致 web server 在同一进程的线程中启动(而不是作为 web 守护进程)。这允许启动 devserver 的相同 PyCharm "Debug" 动作附加到 web server 并在其后端命中断点。


克隆你的 devserver 运行配置并将 --debug-server 添加到 "Parameters" 字段的末尾。通过选择 "Debug" 而不是 "Run" 来启动它。


--debug-server 标志可能会导致进程无法正确响应 SIGINT 并且关闭得比原始配置更不优雅。建议保留两者,将第一个与 Run 命令一起使用,将第二个与 Debug 命令一起使用。


您可以将 --workers 标志与 --debug-server 一起保留,但请注意,不可能将断点附加到 workers ,也不能附加到由 devserver 产生的任何其他守护进程。


独立守护进程


要将 debugger 附加到除 web 之外的单个守护程序,请为守护程序创建运行配置。以下属性应与您的 devserver 配置相同。(您可以克隆它并仅更改 Parameters 字段。)


  • 脚本路径(Script path): <venv dir>/bin/sentry,例如: ~/venv/sentry/bin/sentry
  • Python 解释器(Python interpreter): venv interpreter
  • 工作目录(Working dir): (sentry 安装目录中的 src 路径)例如 ~/dev/sentry/src

将新运行配置的参数设置为启动守护程序的 run 命令,例如:

  • run cron
  • run worker -c 1


提示和故障排除


  • 如果您想调试它,相同的一组修改将适用于 getentry 项目的运行配置。
  • PyCharmCompound 运行配置类型对于一次启动多个运行配置很有用。如果您正在调试一个或多个与开发服务器协同的独立守护进程,那么设置一个可能会很方便。


image.gifimage.png


  • 如果您希望 Sentry 在调试环境中的行为不同于常规运行中的行为,您可以添加任意环境变量,然后在您的 .sentry/sentry.conf.py 文件中检查它们。

例如,下面的屏幕截图显示了调试时禁用 APM 采样的设置(因为在断点处停止会污染时间测量)。请注意,PYCHARM_DEBUG 是一个任意名称;它对 PyCharmSentry 没有特殊意义。


image.png


  • 如果您单独运行的守护进程不工作,您可以通过调试 devserver --debug-server 并在 src/sentry/runner/commands/devserver.py 上插入断点来进行故障排除。这将让您手动检查 devserver 命令正在运行的命令。(在底部附近寻找 manager.add_process 调用。)尝试调整运行配置中的参数以匹配这些命令,如果它们还没有的话。


image.png

相关文章
|
机器学习/深度学习 Python
配置环境miniconda+pycharm【机器学习】
配置环境miniconda+pycharm【机器学习】
503 0
|
Java 开发工具 数据库
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
288 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
3月前
|
网络安全 数据安全/隐私保护 Docker
Pycharm 远程解释器的配置
Pycharm 远程解释器的配置
|
5月前
|
Python
pycharm配置本地python
pycharm配置本地python
156 1
|
5月前
|
Python
Pycharm为Python项目配置环境不生效,解决办法
在PyCharm中,项目依赖配置更改后未生效。解决步骤包括:1) 查找`C:\Users\username\AppData\Roaming\JetBrains\PyCharm2022.2\options\jdk.table.xml`,2) 删除`&lt;jdk&gt;&lt;/jdk&gt;`标签内的旧配置内容,然后重启PyCharm以应用新目录。
424 0
Pycharm为Python项目配置环境不生效,解决办法
|
5月前
|
存储 IDE Linux
Python零基础入门-0 Python简介和开发环境PyCharm配置
Python零基础入门-0 Python简介和开发环境PyCharm配置
|
4月前
|
语音技术 Python
语音识别,Pycharm的基础使用,Pycharm如何修改主题,如何配置字体,increase,decre,pycharm如何切换成中文版的,翻译插件的安装,Pycharm常用快捷键,
语音识别,Pycharm的基础使用,Pycharm如何修改主题,如何配置字体,increase,decre,pycharm如何切换成中文版的,翻译插件的安装,Pycharm常用快捷键,
|
6月前
|
编译器 计算机视觉 Python
pycharm配置opencv库
pycharm配置opencv库
|
6月前
|
编译器 Python
PyCharm Community Edition 2023.3.1解释器配置
PyCharm Community Edition 2023.3.1解释器配置