Web2Py的良好开发环境设置

时间:2010-11-02 07:45:49

标签: eclipse ide web2py

现在已经尝试了几天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

非常感谢!

7 个答案:

答案 0 :(得分:16)

脚本

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

的web2py \应用程序\ MyApp的\ DebugWinpdb.bat

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

的web2py \应用程序\ MyApp的\ DebugShell.bat

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

的web2py \应用程序\ MyApp的\ Shell.bat

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

IDE

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

对我而言,NetBeans是一个很好的折衷方案 - 如果只有你可以想办法(Eclipse / PyDev)和基础知识 - 但很少 - 额外(PyScripter)。 / p>

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 Pros

  • 外壳覆盖图标
  • 资源库资源管理器
    • 使用分支/合并的图形显示查看回购历史记录
    • 使用提交工具按钮
    • 进行传入,传出,推送,拉动,更新等一站式服务
  • 提交工具
    • Hunk Selection:来自文件内的樱桃选择更改为更有针对性的提交
    • 添加,删除,差异,还原,移动,删除,忘记

TortoiseHg Cons

  • 没有简单的方法直接进入命令行
  • 定期阻止在提交期间删除文件的错误(等待释放锁的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知道您的私钥所在的位置,但这些很容易理解。

答案 1 :(得分:12)

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

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

TEXT_EDITOR = 'amy'

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

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

我知道其他用户已将其他IDE用于web2py,例如WinIDE和pyCharm。我建议你在web2py邮件列表上询问人们非常有帮助。

答案 2 :(得分:8)

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

虽然我是在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相结合,您就可以轻松部署。

答案 3 :(得分:5)

警告:我在OS X工作,并在BBEdit中完成大部分编码工作。

也就是说,我已经使用Wing和Komodo IDE进行web2py调试,而且它们对我来说都很有效。我暂时没有尝试过NetBeans;当我做Python支持似乎有点粗糙的边缘。我从来没有时间或耐心来加快Eclipse的速度;它是用Emacs在我的心理文件柜中提交的,毫无疑问是对Eclipse和/或Emacs的不公正。

(我会回应mdipierro建议尝试使用web2py邮件列表;它确实是必不可少的 - 这是web2py最强大的一点。)

答案 4 :(得分:5)

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

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