我正在为我的日志转换器应用程序构建一个回归,它是用Python编写的。我发现了一个非常奇怪的情况,当通过直接运行Python脚本进行转换时,&#34; Python myConverter.py -i <input> -o <output>
&#34;直接地,输出通常在顺序上略有不同,但内容是相同的。就像json字符串中的元素顺序或日志条目的顺序一样。
但是,如果我编译Python并运行.exe ,则不会发生这种情况。
E.g.
(log1)
foo={bar1:a, bar2:b, bar3:c, bar4:d}
(log2)
foo={bar3:c, bar4:d, bar1:a, bar2:b}
E.g.2
(log1)
line1
line2
line3
line4
line5
(log2)
line2
line1
line3
line5
line4
我的环境设置:
Python 2.6
这是一个单一的流程应用程序,我没有明确使用任何并行处理技术。
对于json序列化/反序列化,我使用&#34; import json
&#34;。
我觉得Python解释器为不同的运行产生不同的输出。关于如何发生这种情况的任何想法?
的校正:
运行可执行文件5次后,我发现它也产生不同的输出!!因此,似乎提到的评论,dict可能导致这个问题。