收集记录一些在使用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下,可能不行,至少我没成功,怀疑可能和当前用户的权限有关,不过,没有验证;推荐和python放到同一个目录下)。
- 不要忘记,Django自带的开发服务器是单线程的