如何调试运行在非本地主机的开发服务器上的Python文件?
由于一些奇怪的原因,我现在的项目是这样的——我从开发服务器上获取文件,然后在我的本地系统中修改这个文件,再把它推回服务器上去测试。
因为我无法在本地系统上执行代码,所以调试起来很困难。
我对我的开发服务器有完全的访问权限。有没有办法让我连接到像Eclipse或IntelliJ这样的开发环境,来调试在开发服务器上运行的脚本呢?
我看到IDE中有一些SSH连接的选项。任何关于如何在开发服务器上调试文件的文章或提示都会很有帮助。
我正在使用Python 2.2!!
2 个回答
我不太清楚你为什么会有这样的设置,不过可能可以试试SSHFS。这个工具可以帮你节省一些文件来回传输的时间,但通过IDE(集成开发环境)进行调试就不太可能了。
首先,去 http://pydev.org/ 下载 PyDev。把它作为一个插件安装到 Eclipse 中。
接下来,把 pysrc 文件夹里的内容复制到你的远程系统上。pysrc 文件夹在 PyDev 插件的子目录下。你可以去 Eclipse 安装的地方找,比如如果它在 /opt/eclipse,那么你就去找 /opt/eclipse/plugins/org.python.pydev.debug_xxx.xxx/pysrc。你可以把 pysrc 文件夹复制到远程系统的任何地方。
然后,修改你的 Python 代码,添加一行代码来调用 pydevd.settrace("开发机的 IP 地址")。
def start(session):
sys.path.append("/tmp/pysrc") # this can be any folder you copied the pysrc folder in remote system
import pydevd
pydevd.settrace("devbox IP") # change this to correct IP
在开发机上,通过点击 Eclipse 工具栏上的图标(一个 P 旁边有个虫子的图标,如果在 PyDev 视图里找不到,就去调试视图找)来启动 PyDev 的远程调试服务器。然后在 settrace 语句后面设置一个断点。现在在远程服务器上运行代码,代码会在断点处暂停,你可以在开发机上看到这个断点。