【问题标题】:Remote coding and execution with python: what IDE?使用 python 进行远程编码和执行:什么 IDE?
【发布时间】:2010-07-06 14:09:25
【问题描述】:

在过去的六个月里,我一直在用 python 开发一个项目,并且喜欢这种语言。但是我还没有找到可以为我提供一些额外功能的 IDE 或文本编辑器。我目前有语法高亮,这是最容易获得的东西之一,但仅此而已。我梦想着让我的 IDE 跳转到我的代码中导致崩溃的行,而不是从回溯中读取行号并在我的文本编辑器中手动定位它。我一直在寻找可以在我的开发限制下做到这一点的东西,但没有成功。我的限制如下:

  • 正在开发的 python 代码位于远程机器上,配备了足够的 RAM 和 CPU 来运行代码。那台机器没有屏幕或键盘。
  • 我在笔记本电脑上编写代码,这是一台运行 OS X 的 macbook pro,并不打算执行代码。
  • 远程计算机运行 Fedora 12 并提供具有 root 访问权限的 SSH 连接。
  • 我家的连接不够好,无法在远程机器上运行 X11 IDE 并在我的机器上显示界面。

到目前为止,我一直在做的是使用优秀的CyberDuck 客户端通过 SSH 登录到远程机器。这使我能够在我的任何本地常用文本编辑器(如TextMateTextWrangler)中打开驻留在远程计算机上的文本文件,并在每次保存文件时自动上传更改。这确实让您感觉自己在通常的可可界面中编辑远程文件。

然后为了执行 python 代码,我打开了第二个 SSH 连接,这一次使用我要输入的终端:

$ ssh user@dns
$ ipython -pylab
$ execfile("/projectdir/code.py")

最后,我阅读了回溯并返回到本地文本编辑器以查找正确的行号。一定会有更好的办法 !有什么想法吗?

【问题讨论】:

    标签: python debugging ide ssh


    【解决方案1】:

    你可能喜欢也可能不喜欢这个建议,但我会使用 vim,适当地设置 makeprg 和 errorformat。这样您就可以像往常一样通过 ssh 登录,直接在远程机器上编辑文件,并使用 quickfix-errorlist 进行编译/错误修复。正确设置 makeprg 和 errorformat 只会花费您时间。如果你稍微挖掘一下,信息就在那里。

    编辑

    1. ssh user@intoyourbox.com
    2. 将此答案底部的行放在 ~/.vimrc 中
    3. vim somemodule.py
    4. 键入“:make somemodule.py”
    5. 键入“:cw”,它可能代表 c 语言,窗口
    6. vim 会弹出一个窗口 [Quickfix List]
    7. 光标悬停在 [Quickfix List] 中的错误上
    8. 按回车
    9. vim 将光标移到上面的窗口,并将其放在错误上
    10. 使用您的 vim 技能修复错误,“:h”获取帮助和教程
    11. Ctrl+w, j 将光标向下移动一个窗口,回到您的快速修复列表
    12. Ctrl+w, k 将光标向上移动一个窗口
    13. 根据需要重复步骤 7-12
    14. ":make somemodule.py" 以确保您已修复所有问题
    15. 欢迎来到黑暗面,vim 规则。

    ~/.vimrc 设置:

    "python makeprg settings
    
    setlocal makeprg=python\ %
    
    setlocal errorformat=
            \%A\ \ File\ \"%f\"\\\,\ line\ %l\\\,%m,
            \%C\ \ \ \ %.%#,
            \%+Z%.%#Error\:\ %.%#,
            \%A\ \ File\ \"%f\"\\\,\ line\ %l,
            \%+C\ \ %.%#,
            \%-C%p^,
            \%Z%m,
            \%-G%.%#
    

    设置 ma​​keprg 告诉 vim 你的“编译器”是 python。设置 errorformat 告诉 vim 如何解析“编译器”的输出,以便您可以跳转到错误行。在互联网上四处寻找,有很多关于 python 编程的 vimrc 建议。 Xcode/Visual C++/Perl/等也有 makeprg/errorformat 设置,如果你用不同的语言编程,这确实使 vim 成为双赢的局面。还有其他花哨的东西,如自动缩进、代码完成和语法突出显示。享受

    注意:这些设置几乎一字不差地取自 here

    【讨论】:

    • 我考虑过使用诸如 emacs 或 vim 之类的终端文本编辑器。我可能已经准备好使用简化的界面了。但是当执行崩溃时,这个解决方案会让我跳到正确的行吗?
    • 从 vim 的角度来看,“编译”和运行 python 程序本质上是相同的,当执行崩溃时,它会带你到正确的行
    【解决方案2】:

    这是一个很好的list of Python-Editors

    在我看来WingIDE(有免费版)功能非常丰富,好用简单,支持Remote-Debugging(仅商业版)。此外,完全免费的 Eclipse PyDev-Plugin 值得研究,似乎支持Remote-Debugging

    【讨论】:

    • WingIDE 可能胜任这项任务......但是他们确实声明“由于远程调试的配置相当复杂,我们目前建议通过 X Windows 使用 IDE 的远程显示”。另外,这只是为了调试,它不会让你在远程机器上编辑文件并直接运行它们。您可以在每次运行时在两台机器之间传输和同步所有代码。
    【解决方案3】:

    您应该密切关注 PyCharm - 它尚未准备好生产,但它具有成为出色 IDE 的真正潜力。我已经使用它大约 7 个月了 - 只要您保持最新版本,您就可以续订 45 天免费试用。我相信远程调试是生产版本会支持的功能。

    【讨论】:

    • 我在寻找更好的 IDE 时安装了 PyCharm,但是,正如您所说,远程调试尚未包括在内。我当然会关注它。
    • 快进到 2014 年,PyCharm PRO 现在有了非常棒的远程调试功能。它支持调试服务器和ssh两种模式。
    【解决方案4】:

    我使用它已经有好几年了,但Komodo 的商业版本包含一个远程调试器,并且通常是一个非常适合 Python 编程的包。

    或者,您可以尝试一个独立的远程调试器:WinPdb - 尽管名称如此,但它可以在 Mac 和 Linux 上运行 - 非常好。

    【讨论】:

    • 不幸的是,目前我无法支付 300 美元。
    • 是的,我的经验可以追溯到他们允许您为个人非商业用途提供完整版本的时候。
    • 我使用过 WinPdp 并了解如何将它附加到进程。但是,这并没有提供远程编辑文件并自动运行它们的解决方案。
    【解决方案5】:

    您可以尝试 PyCharm 的专业版。它是迄今为止我发现的最好的远程调试器。有完整的调试功能可用于远程开发。唯一的问题是您每年可能需要支付几美元。

    【讨论】:

    • 是的,我在八年前发布了这个问题。从那以后,我大部分时间都在使用 PyCharm 完成远程调试。
    • 我正在购买一个 IDE 来替换我当前的“带有远程 IDLE 的 XQuartz”方法。我一直在摆弄 PyCharm,但它对我来说似乎是不透明的——这没有意义。例如,我想试试他们的 Raspberry Pi 演示(因为那是我的目标环境),它向我的 Pi 上传了大约 100 个文件。恐怕它看起来像火车残骸 - 我如何将它与我的 GitHub 存储库一起使用?无论如何,在我放弃一个好的 IDE 之前,我想与使用它一段时间的人讨论这个问题。
    猜你喜欢
    • 2010-10-31
    • 1970-01-01
    • 2011-07-26
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2017-07-29
    • 2018-07-13
    相关资源
    最近更新 更多