在Python中调试代码

撰写程序时候,需要在调试上面花费不少时间,好的调试工具可以让这个过程如虎添翼, 靠打 log 调试会是一种很痛苦的过程,我总结一下 Pylons 开发的调试技巧。

吐槽:团队开发时候,每个成员需要学习、总结和分享各自的开发技巧, 这样才能自我提升并提高开发效率。这属于团队文化建设,开发是一种艺术创造过程, 绝对不是简单的复制和粘帖。

在 Python 中调试

pdb

在代码中加入下列语句即可启用交互式调试。

import pdb;pdb.set_trace()

在 pdb 中,可以使用 h / l / b / n / s / c / j / a / p / ! / q 这些命令所代表的含义可以通过 h(elp) 打印出来。

参考链接:

ipdb

比 pdb 更好用的是 …

more ...

使用nose做测试

不做单元测试的程序员不是好程序员。最近我在Pylons下面做开发, 使用 nose 做单元测试,颇有心得, 在这里分享一下。

1. Pylons中依赖包

先简单介绍一下Pylons, Pylons与其说是一个框架,不如说是一堆框架的组合, Pylons在其中做到一个胶水的作用。Pylons依赖的包如下。

Pylons的测试主要使用的其中的 Paste / nose / WebOb / WebTest。 遇到问题的时候,可以去翻一翻上面的文档。

2. Pylons中测试目录结构

目录结构如下

├─config
├─controllers
├─lib
├─model
├─public
├─templates …
more ...

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 …
more ...

Pylons使用小记

活着就是折腾,最近事情多的一塌糊涂,烦躁的很,导致log4d也荒废一个月了。今天趁着周五晚上,梳理一下最近学习的pylons知识。

image

关于Pylons

Pylons是一个用pythons写的web框架,优点是配置灵活,默认使用Mako作为Template,SQLAlchemy作为 ORM映射。使用BSD作为授权协议。

托WSGI的福,python的web框架超多,甚至高手5分钟可以自己手写一个web框架,这种情况也导致了Python web框架的纷杂。我这里选择Pylons(其实是被选择),并不是说Pylons一定最好,而是比较适合当前项目。更多的Python web框架对比建议看这篇浅谈Python web框架,另外,这个Best Web- Framework有直观的对比。

Pylons环境配置

因为开发机是刚到手的ThinkPad,没有冒险安装Linux,所以这里的安装环境是Win7 + Python 2.6 + MySQL5.1。

1、安装Pylons

Pylons似乎没有方便的easy_install,原因是由于Pylons在安装过程中 …

more ...

Eclipse中运行Pylons

官方中pylons都是通过在shell中运行paster serve –reload development.ini来运行应用实例。而整天在任务栏跑着一个黑乎乎的shell很碍眼,通过一下步骤可以在Eclipse中运行pylons。

配置Run Configuration - Python Run如下。

Main页签中Main Module指向paster-script.py,可以使用绝对路径。

image

配置Arguments页签的参数,添加serve –reload development.ini,后面的ini配置文件可以使用绝对路径。

image

勾选Common下的Allocate Console来进行paster调试信息输出。

在Windows - Preference - Pydev - Interpreter - Python中的PYTHONPATH加入pylons目标环境 ,报过site-packages目录和site-packages目录下面的egg文件(理解为jar包,称之为蟒蛇蛋)。

不出意外的话,就可以通过Run跑起整个应用了。

很可惜的是,这样做还是不能对应用进行Debug,pylons的debug依然依赖于pylons的“交互调试页面”。

参考http://stackoverflow.com/questions/147650/debug-pylons-application-through- eclipse

more ...