首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyDev/LiClipse中使用root调试项目

在PyDev/LiClipse中使用root调试项目
EN

Stack Overflow用户
提问于 2016-01-18 17:51:42
回答 2查看 899关注 0票数 8

对于我正在做的一个项目,我需要能够以root用户身份进行调试。

我已经知道了如何以root用户身份启动解释器,而不需要系统的许可。我补充道:

代码语言:javascript
复制
user     ALL=(root) NOPASSWD:/home/user/git/Project/bin/python2.7

/etc/sudoers.tmp。我使用的路径指向我在这个项目中使用的虚拟环境的python解释器。LiClipse项目也使用此路径。现在我只需要让LiClipse以根用户身份运行解释器,但我不想以根用户身份启动LiClipse。我只想让它在调试时使用这个解释器作为root。我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2016-01-22 17:51:25

在这种情况下,我建议使用远程调试。然后,您可以让进程以所需的任何用户身份运行,并且IDE可以作为另一个用户独立运行,甚至可以在另一个服务器上运行。

假设您在LiClipse中使用PyDev,您可以通过以下the documentation for remote debugging配置远程调试。

基本前提是您将pydev调试器库添加到您的Python路径中,并在需要断点的位置包括以下内容:

代码语言:javascript
复制
import pydevd
pydevd.settrace('localhost', port=7788, stdoutToServer=True, stderrToServer=True)

然后,使用在该服务器(本例中为7788)监听的pydev实例配置您的集成开发环境。

如果要使用集成开发环境中的断点,可以添加参数suspend=False,调试器在遇到断点之前不会挂起。

票数 3
EN

Stack Overflow用户

发布于 2016-01-22 19:07:07

在PyDev中,您实际上可以选择一个shell脚本,该脚本将执行实际的Python来执行运行...然后,您可以将shell脚本配置为首先执行任何特殊设置。

即:您的脚本可以是一个名为python_on_root.sh的文件,其内容如下:

代码语言:javascript
复制
#!/bin/bash
source setup_env.bash
sudo python "$@"

然后,在解释器配置中,选择python_on_root.sh以创建将以根用户身份执行的解释器。

请注意,对于其他有趣的事情也可以这样做--比如在docker容器中运行或首先激活conda环境-- sky是极限;)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34851693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档