【问题标题】:A good development environment setup for Web2Py一个好的 Web2Py 开发环境设置
【发布时间】:2010-11-02 07:45:49
【问题描述】:

已经尝试了几天的 Web2Py,我决定将它作为一个守门员。但是有一件事让我很担心,这最终可能会成为一个阻碍。我需要一个我可以信任并富有成效的良好开发环境和设置。来自 MS Visual Studio 世界,我正在寻找具有良好自动完成/智能感知 + 版本控制和部署功能的东西。

我曾尝试在 Eclipse 中编辑我的代码,但它需要额外的设置才能使用自动完成功能运行,而对于调试,我不知道是否可行。 (注意到 Eclipse 中有一个 Django 项目模板,我必须说这有点诱人。)

Wing Ide 有一个关于如何启动和运行 web2py 的说明,我正在测试那个。不是免费的,但与 Windows 世界中的许多产品相比非常便宜。

我还想要一个好的版本控制 (hg) 设置,最好是半自动 FTP 部署方法。

Web2Py 开发人员使用什么 IDE,您的设置如何?

在一个好的 IDE 中为项目提供一个完整的设置脚本会很棒! (就像安装一样,一键运行100%)。

Pycharm 看起来不错,或许可以添加 web2py 支持http://youtrack.jetbrains.net/issue/PY-1648

非常感谢!

【问题讨论】:

  • 哇!在我提出问题 11 小时后,我已经有了四个详细的答案。我印象深刻。
  • 我暂时离开 web2py 一个月,但现在我回来了 - 我想我会离开 Ubuntu 轨道并坚持使用我知道的服务器,用于实时站点的 IIS。另外 - 我将通过更少的工具,使用包含的版本控制来“保持简单”(如果它在 win env 中工作)。我希望这仍然是 IIS 托管 web2py web2py.com/AlterEgo/default/show/207 的有效说明
  • (我的 Ubuntu 服务器崩溃了,不知道发生了什么。而且我严重缺乏关于如何安全地使用 Ubuntu 托管的知识,因此该平台对我来说确实是一个糟糕的选择。)
  • web2py 支持在PyCharm 3 roadmap,fwiw。

标签: eclipse ide web2py


【解决方案1】:

脚本

在 web2py 中创建一个新项目后,我会在我的主应用程序文件夹中添加一些脚本:

web2py\applications\myapp\DebugWinpdb.bat

C:\Python25\Scripts\winpdb.bat ..\..\web2py.py -i 127.0.0.1 -p8000 -mypassword

web2py\applications\myapp\DebugShell.bat

C:\Python25\Scripts\winpdb.bat ..\..\web2py.py -S myapp -M

web2py\applications\myapp\Shell.bat

python ..\..\web2py.py -S myapp -M

集成开发环境

正如其他人所说,无论你使用什么 IDE,你都需要做一些 extra stuff 来获得 web2py 的自动完成/智能感知。

对我来说,NetBeans 是一个很好的折衷方案,它可以在做所有事情的前提下(Eclipse/PyDev)和做基础知识但很少有额外内容(PyScripter)之间实现。

NetBeans 设置(项目属性)

  • Python 类别
    • Python 平台:Python 2.x(默认为 Jython)
  • 运行类别
    • 主模块:web2py.py
    • 应用程序参数:-i 127.0.0.1 -p 8000 -a mypassword

NetBeans 专业人士

  • 紧密的 Mercurial 集成
    • 在编辑源文件时突出显示源文件中添加、更改或删除的行
    • 选择性回滚自上次提交以来所做的个别更改
    • 我用过的最好的视觉差异查看器之一
  • Python PEP8 风格提示(完全可定制)
    • 根据您的代码风格 (CapitalizedWords),名称“foo”不是有效的类名
    • 根据您的代码样式,名称“Bar”不是有效的函数名称(lowercase_with_underscores)
    • 自动格式化热键(更正运算符周围的间距等)
  • 在源文件中导航
    • 对当前源文件进行语义索引
    • 按类型(类、方法、属性等)按字母顺序组织
    • 甚至可以管理庞大的样式表

NetBeans 缺点

  • 集成调试器无法与 web2py 一起使用(那真的很痛)
  • 启动时间长(但启动并运行后对我来说很快)

版本控制

我使用并强烈推荐 Mercurial 进行源代码控制。如前所述,NetBeans 对 Mercurial 有很好的支持,但有些事情我宁愿在 TortoiseHg 中做。

TortoiseHg 专业人士

  • 外壳覆盖图标
  • 存储库资源管理器
    • 通过分支/合并的图形显示查看存储库历史
    • 带有提交工具按钮的传入、传出、推送、拉取、更新等一站式服务
  • 提交工具
    • Hunk 选择:从文件中挑选更改以实现更集中的提交
    • 添加、删除、区分、还原、移动、删除、忘记

TortoiseHg 缺点

  • 没有简单的方法直接放入命令行
  • 在提交期间定期阻止文件被删除的错误(等待 indef 释放锁;从命令行运行 hg addremove 是一种可靠的解决方法)

发布

我结合使用 WinSCP(用于浏览)、PuTTY(用于终端命令)和 TortoiseHg(用于推/拉我的存储库)来使用我在 Webfaction 上的共享主机帐户。

我要做的第一件事是设置公钥/私钥加密。如果您在 Windows 和 Linux 之间进行此设置时遇到问题,请尝试these instructions from Andre Molnar。简短的故事是您需要在 Linux 上使用 ssh-keygen 生成您的私钥,使用 WinSCP 将其复制到您的 Windows 机器,然后将其转换为与 WinSCP 和 PuTTY 一​​起使用。

然后将以下行添加到您的全局 mercurial.ini 文件中:

[ui]
ssh = "C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -i "c:\path\to\your\privatekey.ppk"

即使您必须连接到多个服务器,您也只需将您的公钥复制到每个不同的服务器。您还需要让 WinSCP 和 PuTTY 知道您的私钥所在的位置,但这些很容易弄清楚。

【讨论】:

  • 非常感谢您的丰富回答!我将看看 NetBeans 和 winpdb。
  • 那么您在 Webfaction 的共享主机帐户上运行了 Web2Py?
  • 是的。我在 Webfaction 上没有任何正在生产的 Web2py 应用程序,但这只是因为我还没有走到那一步。当我设置它时,Webfaction 上有一个 web2py 安装脚本(由 Massimo 编写或由 Massimo 大量贡献)运行良好。
【解决方案2】:

试试trunk中的new web2py admin接口。它有一个基于 Web 的 Mercurial 界面和一个 google 部署界面。

在 web2py 中你可以编辑 applications/admin/models/0.py 并设置

TEXT_EDITOR = 'amy'

您将获得具有自动完成功能的基于网络的 Amy 编辑器。它不是默认的,因为它不适用于某些浏览器并且因为自动完成不如 eclipse 好。它可能对你有用。

您可以将 web2py 与 Eclipse 一起使用,但您需要一个较小的解决方法来让 Eclipse 了解 web2py 环境。 It is explained here.

我知道其他用户使用过其他带有 web2py 的 IDE,例如 WinIDE 和 pyCharm。我建议你在 web2py 邮件列表中询问人们对哪些地方很有帮助。

【讨论】:

  • 哇,Amy 真的很酷amyeditor.com/api/embed/test_python.html,我真的很喜欢你在新界面上的表现,赞!将每个部分模型/控制器/视图等放在单独的页面上不是一个好主意吗?在这种情况下,人们可以轻松地在浏览器选项卡中打开每个选项卡并轻松地在它们之间切换(使用相应的选项卡命名)。
  • 我们正在重构管理员。这将很快发生。我们也在研究 yemacs。我们可以在 web2py google 组中使用您的建议。
  • 最适合学习我需要智能感知/自动完成功能,在 web ui 上我猜兼容性和稳定的环境始终应该是第一要务。
【解决方案3】:

我很确定执行您正在寻找的所有操作的“一键设置脚本”不存在(目前)。但不要被推迟 - 您可以实现一个适合您需求的良好开发环境,并且有很多选择。

虽然我在 Windows 上进行开发,但我喜欢我的设置,因为它更像是一种“Unixy”的思维方式,我有许多工具,每个工具都在执行特定的任务。一旦你设置了工作流,你就可以非常高效 - 虽然我意识到它最初来自 Visual Studio 世界可能看起来有点混乱。

下面我概述了我已经确定的内容。我相信其他人会有自己的建议。选择您最喜欢的选项。

(下面应该有指向有用软件的超链接,但我没有足够的声誉来包含超过 1 个链接...)

对于在 Windows 上进行开发,我喜欢使用 Pyscripter。它免费、快速(与 Aptana / Eclipse / Netbeans 等相比)并具有一些不错的功能(黑暗主题、集成的 python 控制台和代码浏览器等等)。

由于 web2py 的工作方式,要让代码完成/智能感知适用于 web2py,您需要将一些代码添加到您的模型/控制器文件中。 web2py群的this discussion topic有一些说明。

web2py 内置了一个很棒的错误记录系统(参见 web2py 书籍第 3 章)。对于更全面的调试,pydb 似乎是要走的路。只需将下面的代码作为断点:

import pydb 
pydb.debugger()

它会带你到调试器。

我使用 TortoiseHg 进行 Mercurial 集成,效果非常好。将其与 winscp 结合使用,您可以轻松部署。

【讨论】:

  • 您是否在 Windows + IIS 上托管您的 web2py 站点?这是web2py.com/AlterEgo/default/show/207 要走的路吗?
  • 抱歉,我使用 Apache 和 mod_wsgi 托管在 Debian VPS 上 - 使用 web2py.com/book/default/chapter/… 很容易设置
  • 好的,谢谢,但即使它可能很容易设置 - 对我来说,我对 Apache 和 *nix 还不够熟悉,无法运行一个应该可靠的网站。一个简单的错误,我在谷歌上搜索了几个小时的答案。
【解决方案4】:

注意事项:我在 OS X 中工作,并且大部分编码都是在 BBEdit 中完成的。

也就是说,我使用 Wing 和 Komodo IDE 进行 web2py 调试,它们都对我来说工作得很好。我已经有一段时间没有尝试过 NetBeans 了。当我这样做时,Python 支持似乎有点粗糙。而且我从来没有时间或耐心跟上 Eclipse 的速度。它与 Emacs 一起归档在我的心理文件柜中,这对 Eclipse 和/或 Emacs 无疑是不公平的。

(我将响应 mdipierro 的建议,尝试使用 web2py 邮件列表;它确实不可或缺——这是 web2py 的强项之一。)

【讨论】:

    【解决方案5】:

    您是否考虑过使用更少的工具? Python 和 web2py 都不需要大量代码来完成很多工作。 web2py 只添加了 10 或 15 个新函数调用(除了 HTML 帮助器和验证器)。您可能会发现 Eclipse 和其他 IDE 实际上会妨碍您。通过管理系统在 web2py 中设置新应用程序很简单。由于新应用程序脚手架复制了欢迎应用程序,因此您可以通过编辑欢迎应用程序来自定义新应用程序设置。使用 Mercurial(或 Git、Subversion 或 Bazaar),您可以在您的机器或公共站点之一上设置服务器,并将更新推送或拉取到您的生产服务器。保持简单,我说。

    【讨论】:

    • 只有 10 或 15 个新函数调用?详细说明。
    【解决方案6】:

    我们正在使用 web2py 框架来满足我们所有的 Web 应用程序需求,这是我们的设置:

    操作系统 - 最新的 Ubuntu
    IDE - 带有 pyDev 的 Aptana Studio 3.0
    版本控制 - git
    蟒蛇 2.7 开发阶段浏览器:Chrome

    【讨论】:

      【解决方案7】:

      我发现 Wing IDE 调试器非常有用。它是一个全面的强大调试器,还可以配置为进行远程调试,当您在无 GUI 的远程计算机(例如在 Amazon Web Services)上运行 web2py 时,这非常重要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多