奇怪的python错误 - 堆栈跟踪中的代码与实际文件不匹配

时间:2013-11-08 20:47:46

标签: python

这是我在文件中的内容(第94行):

desktop = {k[0]:(v[0]/v[1]) for k,v in mymap.items() if k[1] == 'f'}

以下是从命令行运行此代码吐出的内容:

File "process.py", line 94
    desktop = {[0]k:(v[0]/v[1]) for k,v in ctr_map.items() if k[1] == 'f'}
                  ^
SyntaxError: invalid syntax

奇怪,对吗?为了笑,我更改了原始行以匹配错误中的行(希望两个交换正确),我得到了:

File "process.py", line 94
    desktop = {00kk:(v[0]/v[1]) for k,v in ctr_map.items() if k[1] == 'f'}
                  ^
SyntaxError: invalid syntax

然后,我从目录中删除了所有pyc文件(没有process.pyc,但是有一个用于由进程加载的另一个文件)并且它工作了!我想我正在寻找更多的解释而不是修复。我还没能复制(还有!)。

这种情况发生在pypy(第一次),然后是常规的python 版本信息:

Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17) 
[GCC 4.5.2] on linux2

Python 2.7.2 (0e28b379d8b3, Feb 09 2012, 19:41:03)
[PyPy 1.8.0 with GCC 4.4.3] on linux2

0 个答案:

没有答案