27

几天来一直在尝试 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

非常感谢!

4

7 回答 7

16

脚本

在 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

正如其他人所说,无论您使用什么 IDE,您都需要做一些额外的事情来获得 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 风格提示(完全可定制)
    • 根据您的代码样式,名称“foo”不是有效的类名(CapitalizedWords)
    • 根据您的代码样式,名称“Bar”不是有效的函数名称(lowercase_with_underscores)
    • 自动格式化热键(更正运算符周围的间距等)
  • 在源文件中导航
    • 语义索引当前源文件
    • 按类型(类、方法、属性等)按字母顺序组织
    • 甚至可以管理庞大的样式表

NetBeans 缺点

  • 集成调试器不适用于 web2py(那真的很痛)
  • 启动时间长(但一旦启动并运行对我来说是可以接受的)

版本控制

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

TortoiseHg 优点

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

TortoiseHg 缺点

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

出版

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

我做的第一件事是设置公钥/私钥加密。如果您无法在 Windows 和 Linux 之间进行此设置,请尝试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 知道您的私钥所在的位置,但这些很容易弄清楚。

于 2010-11-02T15:48:24.277 回答
12

在主干中尝试新的 web2py 管理界面。它有一个基于 Web 的 Mercurial 界面和一个 google 部署界面。

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

TEXT_EDITOR = 'amy'

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

您可以将 web2py 与 Eclipse 一起使用,但您需要一个较小的解决方法来让 Eclipse 了解 web2py 环境。它在这里解释

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

于 2010-11-02T13:26:59.113 回答
8

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

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

下面我概述了我已经解决的问题。我相信其他人会有自己的建议。选择您最喜欢的选项。

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

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

由于 web2py 的工作方式,要让代码完成/智能感知适用于 web2py,您需要向模型/控制器文件添加一些代码。在 web2py 组的这个讨论主题中有一些说明。

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

import pydb 
pydb.debugger()

它会带你到调试器。

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

于 2010-11-02T12:36:22.947 回答
5

Have you considered using fewer tools? Both Python and web2py don't require a whole lot of code to get a lot accomplished. web2py only adds 10 or 15 new function calls (besides the HTML helpers and validators). You might find that Eclipse and other IDEs actually get in the way. Setting up new apps in web2py is simple through the admin system. Since the new app scaffolding copies the welcome app, you can customize new app setup by editing the welcome app. With Mercurial (or Git, Subversion or Bazaar) you can set up a server on your machine or with one of the public sites and either push or pull updates to your production server. Keep it simple, I say.

于 2010-11-29T23:41:03.627 回答
5

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

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

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

于 2010-11-02T18:17:25.167 回答
1

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

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

于 2012-04-02T11:14:43.053 回答
0

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

于 2012-11-24T10:57:24.900 回答