出问题版本==3.3.1
mod_python是apache的一个模块,用于直接在apache进程内(当然要另开个线程)运行python,而不像普通CGI那样启动新进程来运行python脚本,性能提高很多
之前,我一直以为,该模块能让apache运行任何符合python语法的脚本,直到运行这么一行代码
>>> path = os.path.join('/home/runji/', '%05d.wav'%8)
>>> print path
/home/runji/00008.wav
上述代码的意图是,将任意数字(例子中是8) 格式化成5位数的字符串,不足5位的前面补零
但mod_python运行这段字符串格式化代码时,会异常退出,并且没有任何告警和报错
所以,我觉得mod_python是一个阉割版的python解释器,它具备标准python解释器的大部分功能(而且也能利用标准python的三方库),但一些犄角旮旯的功能就没有了
另外该模块安装后体积只有440KB,而标准python解释器的体积有2800KB,二者体积相差巨大,又看到wikipedia这么一段话
It is intended to provide a Python language binding for the Apache HTTP Server.
所以,我又觉得mod_python只是一个 Binder,将CGI调用信息翻译成python能理解的数据格式,最终还是调的标准Python中的函数(通过什么方式?),只是没有起进程而已
到底是哪一种情况,请看过源码的同学告知,谢谢!