现在已经尝试了几天的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
非常感谢!
操作系统:Windows 7/Windows XP
IDE:NetBeans
版本控制:TortoiseHg/NetBeans
调试器:winpdb
壳牌:IPython
发布:WinSCP/PuTTY/TortoiseHg
在web2py中创建一个新项目后,我将一些脚本添加到我的主app文件夹中:
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,你都需要做一些额外的东西来获得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优点:
壳覆盖图标
资源库资源管理器
使用图形显示分支/合并查看回购历史记录
使用提交工具按钮进行传入,传出,推送,拉动,更新等一站式服务
提交工具
Hunk Selection:来自文件内的樱桃选择更改为更有针对性的提交
添加,删除,差异,还原,移动,删除,忘记
TortoiseHg缺点:
没有简单的方法可以直接进入命令行
在提交期间定期阻止文件被删除的错误(等待unf以释放锁; 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知道您的私钥所在的位置,但这些很容易理解.
在trunk中尝试新的web2py管理界面.它有一个基于Web的mercurial界面和一个google部署界面.
在web2py中,您可以编辑applications/admin/models/0.py并设置
TEXT_EDITOR = 'amy'
并且您将获得具有自动完成功能的基于Web的Amy编辑器.它不是默认值,因为它不适用于某些浏览器,因为自动完成不如eclipse.它可能适合你.
您可以将web2py与Eclipse结合使用,但需要一个小的解决方法来让Eclipse了解web2py环境.这里解释一下.
我知道其他用户已将其他IDE用于web2py,例如WinIDE和pyCharm.我建议你在web2py邮件列表上询问人们是否非常乐于助人.
我很确定你所寻找的所有"一键设置脚本"都不存在(目前).但不要被推迟 - 您可以实现一个良好的开发环境,以满足您的需求,并有很多选择.
虽然我在Windows上开发,但我喜欢我的设置,因为它更像是一种"Unixy"思维方式,我有许多工具,每个人都在做一项特定的任务.一旦你获得了工作流程设置,你就可以非常高效 - 虽然我意识到最初来自Visual Studio世界可能看起来有点令人困惑.
下面我概述了我已经解决的问题.我相信其他人会有自己的建议.选择您最喜欢的选项.
(下面应该有超链接到有用的软件,但我没有足够的声誉来包含多个链接...)
对于在Windows上开发我很享受使用Pyscripter.它是免费的,快速的(与Aptana/Eclipse/Netbeans等相比)并且具有一些不错的功能(黑暗主题,集成的python控制台和代码浏览器等等).
要使代码完成/智能感知适用于web2py,您需要为模型/控制器文件添加一些代码,因为web2py的工作方式.web2py组的讨论主题中有一些说明.
web2py内置了一个很好的错误票务系统(参见web2py一书第3章).对于更全面的调试,pydb似乎是要走的路.只需将下面的代码作为断点:
import pydb pydb.debugger()
它会带你去调试器.
我使用TortoiseHg进行Mercurial集成,它运行得非常好.将它与winscp结合使用,您可以轻松部署.
注意事项:我在OS X中工作,并在BBEdit中完成大部分编码.
也就是说,我已经使用Wing和Komodo IDE进行web2py调试,而且它们对我来说都很有效.我暂时没有尝试过NetBeans; 当我做Python支持似乎有点粗糙的边缘.我从来没有时间或耐心来加快Eclipse的速度; 它与Emacs在我的心理文件柜中提交,毫无疑问是对Eclipse和/或Emacs不公正的.
(我会回应mdipierro建议尝试使用web2py邮件列表;它确实是必不可少的 - 这是web2py最强大的一点.)
您是否考虑过使用较少的工具?Python和web2py都不需要大量的代码来完成很多工作.web2py只添加10或15个新函数调用(除了HTML帮助器和验证器).您可能会发现Eclipse和其他IDE实际上会受到阻碍.通过管理系统在web2py中设置新应用程序非常简单.由于新的app脚手架复制了欢迎应用程序,您可以通过编辑欢迎应用程序来自定义新的应用程序设置.使用Mercurial(或Git,Subversion或Bazaar),您可以在计算机上或使用其中一个公共站点设置服务器,并将更新推送或提取到生产服务器.我说,保持简单.