通过摸索和查阅django官网文档,我今天已经解决windows上执行django-admin.py makemessages -l zh_CN 后出现'xgettext'不是内部或外部命令,也不是可运行的程序或批处理文件的错误
原因和解决办法是:
分析django的源代码中关于国际化方面的(makemessages)就知道,上述命令最终调用的是os.cmd之类调用命令行的东西,而windows的path路径列表中没有xgettext.exe,这是因为windows上没有gettext,所以要安装gettext(python有gettext,但是好像不行,它没有xgettext)
下载地址是:http://sourceforge.net/projects/gettext
下载这三个:
gettext-runtime-X.bin.woe32.zip
gettext-tools-X.bin.woe32.zip
libiconv-X.bin.woe32.zip
解压这3个zip文件到同一个文件夹,比如 C:\Program Files\gettext-utils
然后添加到系统变量的PATH中:
控制面板 > 系统 > 高级 > 环境变量
在系统变量列表中, 选中Path, 然后单击编辑
添加 ;C:\Program Files\gettext-utils\bin 到结尾后一直点确定就行了
那3个文件全部选中后,直接用winrar解压,选择一个目录后解压即可