在Python中调试代码

撰写程序时候,需要在调试上面花费不少时间,好的调试工具可以让这个过程如虎添翼, 靠打 log 调试会是一种很痛苦的过程,我总结一下 Pylons 开发的调试技巧。 吐槽:团队开发时候,每个成员需要学习、总结和分享各自的开发技巧, 这样才能自我提升并提高开发效率。这属于团队文化建设,开发是一种艺术创造过程, 绝对不是简单的复制和粘帖。 在 Python 中调试 pdb 在代码中加入下列语句即可启用交互式调试。 import pdb;pdb.set_trace() 在 pdb 中,可以使用 h / l / b / n / s / c / j / a / p / ! / q 这些命令所代表的含义可以通过 h(elp) 打印出来。 ...

2012-03-20 · alswl

使用nose做测试

不做单元测试的程序员不是好程序员。最近我在Pylons下面做开发, 使用 nose 做单元测试,颇有心得, 在这里分享一下。 1. Pylons中依赖包 先简单介绍一下Pylons, Pylons与其说是一个框架,不如说是一堆框架的组合, Pylons在其中做到一个胶水的作用。Pylons依赖的包如下。 breaker,缓存和Session FormEncode,用户输入检查 Mako,模板渲染 nose,自动化测试 Paste,服务器 Routes, 路由 Tempita,Paste的模板 Weberror WebOb,提供WSGI请求响应等对象 WebTest,Paste自带的测试小框架, 提供TestResponse和TestRequest两个有用的小东西 Pylons的测试主要使用的其中的 Paste / nose / WebOb / WebTest。 遇到问题的时候,可以去翻一翻上面的文档。 ...

2011-09-22 · alswl

go-pylons.py在Python2.7下错误解决

当使用 Python2.7 + go-pylons.py 创建 Pylons 运行环境的话,会报一下错误。 [alswl@arch-vm xingtong]$ python go-pylons.py myb_env New python executable in myb_env/bin/python Traceback (most recent call last): File "/home/alswl/work/xingtong/myb_env/lib/python2.7/site.py", line 67, in <module> import os File "/home/alswl/work/xingtong/myb_env/lib/python2.7/os.py", line 398, in <module> import UserDict File "/home/alswl/work/xingtong/myb_env/lib/python2.7/UserDict.py", line 83, in <module> import _abcoll File "/home/alswl/work/xingtong/myb_env/lib/python2.7/_abcoll.py", line 11, in <module> from abc import ABCMeta, abstractmethod File "/home/alswl/work/xingtong/myb_env/lib/python2.7/abc.py", line 8, in <module> from _weakrefset import WeakSet ImportError: No module named _weakrefset ERROR: The executable myb_env/bin/python is not functioning ERROR: It thinks sys.prefix is '/home/alswl/work/xingtong' (should be '/home/alswl/work/xingtong/myb_env') ERROR: virtualenv is not compatible with this system or executable STFW 之后,找到了引发错误的根源virtualenv,这个 bug 在这里已经修复了。 #!diff --- a/virtualenv.py 2010-09-14 21:48:58.078562930 +0200 +++ b/virtualenv.py 2010-09-14 21:46:20.650769346 +0200 @@ -51,6 +51,8 @@ REQUIRED_FILES = ['lib-dynload', 'config if sys.version_info[:2] >= (2, 6): REQUIRED_MODULES.extend([‘warnings’, ’linecache’, ‘_abcoll’, ‘abc’]) if sys.version_info[:2] >= (2, 7): REQUIRED_MODULES.extend([’_weakrefset’]) if sys.version_info[:2] <= (2, 3): REQUIRED_MODULES.extend([‘sets’, ‘future’]) if is_pypy: 懒人可以点击go-pylons.py下载。

2011-08-02 · alswl

Eclipse中运行Pylons

Thumbnail

官方中pylons都是通过在shell中运行paster serve –reload development.ini来运行应用实例。而整天在任务栏跑着一个黑乎乎的shell很碍眼,通过一下步骤可以在Eclipse中运行pylons。 配置Run Configuration - Python Run如下。 Main页签中Main Module指向paster-script.py,可以使用绝对路径。 配置Arguments页签的参数,添加serve –reload development.ini,后面的ini配置文件可以使用绝对路径。 ...

2011-05-16 · alswl

Pylons使用小记

Thumbnail

活着就是折腾,最近事情多的一塌糊涂,烦躁的很,导致log4d也荒废一个月了。今天趁着周五晚上,梳理一下最近学习的pylons知识。 关于Pylons Pylons是一个用pythons写的web框架,优点是配置灵活,默认使用[Mako](http: //www.makotemplates.org/)作为Template,SQLAlchemy作为 ORM映射。使用BSD作为授权协议。 托WSGI的福,python的web框架超多,甚至高手5分钟可以自己手写一个web框架,这种情况也导致了Python web框架的纷杂。我这里选择Pylons(其实是被选择),并不是说Pylons一定最好,而是比较适合当前项目。更多的Python web框架对比建议看这篇[浅谈Python web框架](http://feilong.me/2011/01/talk-about-python-web- framework),另外,这个Best Web- Framework有直观的对比。 ...

2011-05-16 · alswl