【发布时间】:2013-05-08 20:21:29
【问题描述】:
我遇到了一个非常奇怪的问题。我已经将一些 python 代码从一个版本更改为下一个版本,它似乎破坏了代码(尽管通过了测试)。当我去添加调试语句时,代码开始正常工作。再试一次就失败了。经过实验,我意识到只有在更改或删除 pyc 文件后才能运行一次。什么??有没有其他人经历过这个?有什么想法可以解决这个问题吗?
tldr:代码仅在 pyc 更改或删除然后停止工作后才有效。
编辑:问题似乎是 pyc 文件本身。我在没有运行代码的情况下编译了 pyc 文件并尝试运行它,但它没有工作。 我做了一些研究,我认为 python 创建这些 pyc 的方式是,当我尝试运行它时,它会将其加载到环境中,然后创建 pyc。这意味着它在从源加载时工作,但从 pyc 加载时失败。
【问题讨论】:
-
您的程序是否有比进程更有效的副作用?文件、FS 锁、数据库更新?您是在本地运行,还是远程/网络驱动器上的任何文件?
-
好像没有什么副作用。我正在通过 ssh 终端运行。
-
作为更新,我从未找到令人满意的解决方案。我现在所做的只是不生成 pyc 文件。我的应用程序在开始时导入所有内容并在后台运行,因此这不是真正的问题。