Python 空闲运行与运行脚本

Python 空闲运行与运行脚本,python,windows,bioinformatics,vcf-variant-call-format,Python,Windows,Bioinformatics,Vcf Variant Call Format,所以我有一些Python代码(运行Python2.7.12),它使用VEP根据特定的转录本注释vcf文件 当我双击脚本(或从命令提示符运行脚本)运行脚本时,会出现以下错误: C:\annotatetsca\u KH\annotate.py:364:UnicodeWarning:Unicode相等比较无法将两个参数转换为Unicode-将它们解释为不相等 如果成绩单包含在指定的成绩单中: 这会导致某些变体不能根据指定的转录本进行注释。但是,如果我将脚本加载到IDLE中,然后通过IDLE运行完全相同

所以我有一些Python代码(运行Python2.7.12),它使用VEP根据特定的转录本注释vcf文件

当我双击脚本(或从命令提示符运行脚本)运行脚本时,会出现以下错误:

C:\annotatetsca\u KH\annotate.py:364:UnicodeWarning:Unicode相等比较无法将两个参数转换为Unicode-将它们解释为不相等

如果成绩单包含在指定的成绩单中:

这会导致某些变体不能根据指定的转录本进行注释。但是,如果我将脚本加载到IDLE中,然后通过IDLE运行完全相同的代码,则不会出现此错误,并且变体被正确注释

有人知道为什么通过IDLE运行脚本会产生不同的结果吗?据我所知,从我和一些同事交谈过的情况来看,IDLE和Python应该一视同仁。有没有人知道如何避免通过IDLE运行脚本以避免此错误,因为许多不熟悉Python/IDLE的人都在使用此脚本,他们会发现双击脚本(与任何其他Windows应用程序一样)可以更轻松地运行脚本

编辑(已解决):


我找到了问题的原因。成绩单列表中的一些成绩单末尾有一个空格。看起来IDLE会删除尾随空格,但直接运行python脚本不会。因此,当直接运行它时,尾随空间被转换为“\xa0”,因此当它试图将转录本与指定列表中的转录本匹配时,它不匹配。我已经删除了所有空格,效果很好,我还将添加一行,在加载成绩单列表时删除所有空格

我找到了问题的原因。成绩单列表中的一些成绩单末尾有一个空格。看起来IDLE会删除尾随空格,但直接运行python脚本不会。因此,当直接运行它时,尾随空间被转换为“\xa0”,因此当它试图将转录本与指定列表中的转录本匹配时,它不匹配。我已经删除了所有空格,效果很好,我还将添加一行,在加载成绩单列表时删除所有空格

不要犹豫,将您的解决方案作为解决方案发布。