帮忙测试下eval的问题
-
我自己新建了个模块,可是碰到了奇怪的问题
在windows可以正常更新模块列表并安装它,在centos下却不行,找不到这个新增的模块
跟踪了下代码,发现是module.py中的get_module_info函数的这一行代码:info = eval(data)
这行代码将读取到的模块__terp__.py文件的内容转换成dict,
在不同环境下下,可能正常,也可能报错
我的环境:
windows: xp, python2.5.4
linux: centos5.3, python2.4.3我特意做了个测试文件,在windows下ok,在linux下报错
实在是郁闷
我把测试文件传上来,请有条件的朋友帮忙测试下 -
会不会是windows下和*nix下不同的换行符造成的。
怎么样测试?
-
可能是因为windows下的编辑器给__terp__.py文件的文件头加了UTF-8 BOM信息。在linux下转码后,工作正常。
-
我用的是vim,
se ff=unix
再转会来,也没问题了
se ff=dos
应该还是换行符的问题,没有看到BOM标记
[[i] 本帖最后由 digitalsatori 于 2009-7-9 11:06 编辑 [/i]]
-
C:Documents and SettingsAdministrator桌面>python test.py
{'category': 'Generic Modules/Inventory Control', 'init_xml': [], 'name': 'Gowel
l Stock Management', 'author': 'bruce', 'update_xml': ['stock_wizard.xml', 'stoc
k_view.xml', 'stock_report.xml', 'stock_sequence.xml', 'security/stock_security.
xml'], 'depends': ['stock', 'purchase', 'sale'], 'version': 'test.1.0', 'active'
: False, 'demo_xml': [], 'installable': True, 'description': 'Bill Typen'}我测试没有问题....