当前位置:  开发笔记 > 编程语言 > 正文

Web2Py的良好开发环境设置

如何解决《Web2Py的良好开发环境设置》经验,为你挑选了5个好方法。

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

非常感谢!



1> mwolfe02..:

操作系统: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

正如其他人所说,无论你使用什么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知道您的私钥所在的位置,但这些很容易理解.



2> mdipierro..:

在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邮件列表上询问人们是否非常乐于助人.



3> keybits..:

我很确定你所寻找的所有"一键设置脚本"都不存在(目前).但不要被推迟 - 您可以实现一个良好的开发环境,以满足您的需求,并有很多选择.

虽然我在Windows上开发,但我喜欢我的设置,因为它更像是一种"Unixy"思维方式,我有许多工具,每个人都在做一项特定的任务.一旦你获得了工作流程设置,你就可以非常高效 - 虽然我意识到最初来自Visual Studio世界可能看起来有点令人困惑.

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

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

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

要使代码完成/智能感知适用于web2py,您需要为模型/控制器文件添加一些代码,因为web2py的工作方式.web2py组的讨论主题中有一些说明.

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

import pydb 
pydb.debugger()

它会带你去调试器.

我使用TortoiseHg进行Mercurial集成,它运行得非常好.将它与winscp结合使用,您可以轻松部署.



4> JLundell..:

注意事项:我在OS X中工作,并在BBEdit中完成大部分编码.

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

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



5> pbreitenbach..:

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

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有