全国服务热线:400-035-8011

位置:成都兄弟连IT培训学校 > 学校动态 > Python的一个脚本错误

Python的一个脚本错误

来源:成都兄弟连IT培训学校时间:2019/12/18 9:24:10

近,一组用于计算分析的Python脚本中的一个编程错误可能会导致150篇已发表的化学研究论文作废。夏威夷大学在近发表的一篇研究论文中揭示了这个名为Willoughby-Hoye脚本中的一处编程错误。

研究人员在尝试检查蓝细菌实验的结果时,在类似的核磁共振波谱(Nuclear Magnetic Resonance Spectroscopy,NMR)数据上观测到了显着的变化。该错误是否会出现取决于运行脚本的操作系统。

人们发现这些脚本在Windows 10和macOS Mavericks上可以提供准确的结果,但在macOS Mojave和Ubuntu上却几乎会产生不准确的结果。造成这种差异性的罪魁祸首是该脚本使用了Python的glob模块。

该脚本利用glob模块查找与特定名称模式相对应的文件,并根据glob的结果生成需要读取的输入文件列表。然而,该模块的输出依赖于操作系统排序和返回这些文件的方式,而处理文件的顺序会影响这些脚本的计算结果。由于输出不准确,这个细节问题可能会导致许多之前的研究论文作废。

Phillip Williams和Rui Sun修复了代码中正确排序的问题,如今可以增加结果的一致性了。尽管这些变化没有对夏威夷大学团队获得的数据造成任何影响,但可能会对其他已发表的研究项目产生实质性的影响。

Willoughby-Hoye脚本的名字来自其作者明尼苏达大学的Patrick Willoughby和Thomas Hoye。目前Patrick Willoughby是瑞普大学化学系的助理教授,他表示认可脚本中的问题以及修复。他在推特上公开了脚本的更新:“感谢Rui和Williams教授发现了这个问题。六年前,当我编写脚本时,操作系统能够正确处理排序。

Rui和Williams添加的排序代码很有必要,而且他们还添加了一个函数以确保计算无误。辛苦了!”—— Patrick Willoughby有时,即便是信得过的外部脚本和库也有可能导致意外结果。下面,再补充三则的Python小故事。Salesforce的“爱因斯坦分析”抛弃Python,改用Google的Go语言

Python的一个脚本错误

Salesforce将利用Google的Go语言来代替“爱因斯坦分析”中的C和Python。为了强化“爱因斯坦分析”平台,Salesforce向分析公司Tableau投入了157亿美元,很明显他们认为分析对公司的未来发展有着举足轻重的影响。

2017年,在推出“爱因斯坦分析”之前,Salesforce就曾利用Google Golang重新构建了后端。Salesforce首席架构师Guillaume Le Stum指出,考虑到数据集创建工具和查询引擎的性能,他们在“爱因斯坦分析”的创建中选择了C语言,并提供了Python的封装,以提供了REST API服务器、解析查询等其他功能。

Le Stum在Stack Overflow的帖子中说:“从本质上讲,该产品兼顾了两种语言的优点。Python非常适合编写应用程序,但无法提供企业级别所需的高性能。而C可以创建高性能的可执行文件,但是用C添加新功能需要很多时间。”然而,在发布前,Le Stum表示由于添加了不属于核心查询引擎的新功能,该平台的性能有所下降。

因此,再加上该平台的开发和部署等新功能,Salesforce可能仍在考虑长期计划。Le Stum补充说:“ Python无法顺利地执行多线程,因此,Python封装部分使用得越多,执行效率就越差。相比之下,Go适用于Google生产系统级别的大型应用程序,这也是Salesforce决定从C-Python的混合平台转换到Go的原因。

Le Stum进一步强调了Go的优势,其中包括Go的内置工具、易于排除故障、的编译和部署,以及代码更易于理解。Le Stum指出,在企业软件中,工程师花费在阅读代码上的时间超过了编程的时间。

话虽如此,事实证明采用Go语言让Salesforce得到了进一步的发展,该平台的Go语言版在2018年得到了普及。Go语言大的优势就在于Go的跨平台功能,可以轻松地移植代码。Le Stum指出:“如果我们需要将在移动应用程序中使用任何代码,则只需直接将代码编译到iOS或Android即可。”“爱因斯坦分析”平台中没有采用Go编写的是集群管理器,这部分是用Java编写的。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1850/news/129466/违者必究! 以上就是成都兄弟连IT培训学校 小编为您整理 Python的一个脚本错误的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011