在slack中协作调试python应用程序
slack-pdb的Python项目详细描述
slackpdb是rpdb的一种改编,它不是打开一个端口,而是 允许您通过telnet进行调试,连接到可配置的松弛 通道,以便可以协作远程调试应用程序。
import slackpdb slackpdb.set_trace( token="<your slack token>", channel="#debugger_hangout", )
当到达set_trace()时,脚本将“挂起”,这是获得 它将继续访问slackpdb,方法是与连接到 在IRC频道上方。
要与调试器交互,只需在加前缀的通道中发送消息 用这个用户名,它宣布自己为,或者简单地说“!“。
例如,以下两个命令是等效的,每个命令都将 显示pdb帮助屏幕(确保将“myhostname”替换为 用户名选定的机器人):
!help
slackpdb: help
安装
来自pip:
pip install slackpdb
选项
- token:用于连接slack的令牌;如果没有, 您可以在https://my.slack.com/services/new/bot快速生成一个。笔记 如果未指定,则可以从 SLACKPDB_API_TOKEN环境变量,或者,如果django选项是 从名为SLACKPDB_API_TOKEN的django设置设置为True。
- channel(必需):通道的名称(以#开头)。
- limit_access_to:昵称列表 允许与调试器交互。
- django:(默认值:False)尝试从 名为SLACKPDB_API_TOKEN的django设置(如果未指定)。
安全免责声明
这个库的工作方式是固有的危险的;假设 您可以从调试器中执行任意python代码, 强烈建议您采取一切合理措施确保 您可以控制谁能够执行调试器命令。
只是为了确保这一点是明确的:你们都有责任 确定你愿意承担的风险水平,以及 采取适当行动降低风险。
如图书馆许可证所述(见附件 LICENSE.txt):
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
祝你好运,调试愉快!
故障排除
如果看不到机器人进入指定频道,请尝试增加 通过在跟踪上方添加以下行来收集日志级别 关于在 连接到IRC服务器:
import logging logging.basicConfig(filename='/path/to/somewhere.log', level=logging.DEBUG)