收集记录一些在使用Python、Django中遇到的有关问题及解决办法

收集记录一些在使用Python、Django中遇到的问题及解决方法

收集记录一些在使用Python、Django中遇到的问题及解决方法

 

由于工作原因,最近开始学习Python、Django。

 

Python是一种面向对象 、直译式 计算机程序设计语言 ,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。Python支持命令式编程 、面向对象程序设计 、函数式编程 、面向切面编程 、泛型编程 多种编程范式。Python是一门跨平台的脚本语言。[http://zh.wikipedia.org/wiki/Python ]

 

  • 不过Python虽然号称是跨平台的,但是如果你是一个初学者——我就是一个初学者,并且还真的试图跨平台应用它,很可能是一场噩梦,很可能在环境的适配方面花费很多时间。

1.例如:WindowsError的问题。

如果你有如下代码:

            try:
                os.remove(file_full_path)
            except (WindowsError, OSError):
                pass
 

如果捕捉到了

OSError

这个异常,那么就会发现在Windows系统下是没有问题的,但是到了Linux下就会出问题。

因为在Python的Linux实现中,就没有定义

WindowsError

这个异常。这样就会报

WindowsError is not available on linux?

参见:http://mail.python.org/pipermail/python-list/2009-November/1226720.html

 

2.magic模块的安装。Windows安装magic模块是一件很痛苦的事情,至少我是尝试了至少两天的时间,才找到方法。

单纯安装magic模块可能并不复杂,可以使用easy-install安装

[命令:python -m easy_install python-magic]

 也可以下载源码,解压,使用python setup.py install安装

    url:https://github.com/ahupp/python-magic

不过,困难的是,magic模块需要libmagic库的支持,这是和平台相关的。

网站 https://github.com/ahupp/python-magic 上告知了需要哪些dll,但是少说了一个pcre3.dll。

经过试验——确实是试验,共需要magic1.dll,pcre3.dll,regex2.dll,zlib1.dll四个dll。

这四个dll可以在GnuWin中获得,并且放到Path环境变量可以找到的地方(但是不要放到System32下,可能不行,至少我没成功,怀疑可能和当前用户的权限有关,不过,没有验证)

 

  • 不要忘记,Django自带的开发服务器是单线程的
1 楼 tokyo2006 2012-05-13  
不错,经验之谈是最好的