我遇到了一个非常奇怪的问题。我已经将一些Python代码从一个版本更改为下一代,并且它似乎破坏了代码(尽管通过了测试)。当我去添加一个调试语句时,代码开始正常工作。再次尝试失败。经过试验,我意识到只有在pyc文件被更改或删除之后,它才能在一次运行中运行。什么??有没有其他人经历过这个?任何想法来解决这个问题?Python代码暂时工作只有当pyc文件改变
tldr:代码只有在pyc改变或删除后才能正常工作,然后停止工作。
编辑:它似乎是问题是pyc文件本身。我编译了pyc文件而没有运行代码,并尝试运行它,它不起作用。 我做了一些研究,我认为python创建这些pyc的方式是当我尝试运行它时,它将它加载到环境中,然后创建pyc。这意味着它在从源代码加载时起作用,但在从pyc加载时失败。
没有你的程序有副作用,其活得比过程?文件,FS锁,数据库更新?您是在本地运行,还是远程/网络驱动器上的任何文件? – shx2 2013-05-08 20:26:10
似乎没有任何副作用。我正在运行一个ssh终端。 – amustafa 2013-05-08 20:34:22
作为更新,我从未找到满意的解决方案。我现在所做的就是不生成pyc文件。我的应用程序在开始时导入一次,并在后台运行,所以这不是一个问题。 – amustafa 2013-06-19 08:21:43