使Python忽略.pyc文件 - 代码日志

使Python忽略.pyc文件

有没有办法让Python忽略现有的任何.pyc文件,并且始终直接解释所有代码(包括导入的模块)?谷歌没有提出任何答案,所以我怀疑不是,但似乎值得一提,以防万一。

(为什么要这样做?我有一大堆Python脚本,这些脚本在几百台计算机的群集中重复运行,Python脚本本身就是共享的NFS文件系统,不知何故,很少有运行数百个几个小时的时间,他们会突然开始崩溃,出现无法导入模块的错误,强制重新生成.pyc文件可以解决问题,当然,我想要解决根本原因,但是在同时我们还需要系统继续运行,所以似乎忽略了.pyc文件,如果可能的话将是一个合理的解决方法)。

附:我使用的是Python 2.5,所以我不能使用-B。

您可以使用标准Python库的imp模块来重新实现__builtins __.__ import__,这是import和from语句调用的钩子函数。特别地,即使存在相应的.pyc,也可以使用imp.load_module函数来加载.py。请务必仔细研究我指出的页面中的所有文档以及import的所有文档,因为它是一种微妙的工作。文档本身建议使用导入钩子(根据PEP 302),但是对于这个特定任务,我怀疑这将更加困难。

BTW可能导致您观察到的问题包括尝试同时写入.pyc文件的不同计算机之间的竞争条件 – NFS锁定声名狼借,一直是;-)。只要您使用的每个Python编译器都是相同的版本(如果没有,那么您仍然有很大的麻烦;-)我宁愿将所有这些.py文件预编译为.pyc,只要;后者似乎是最简单的方法(而不是黑客__import__),即使由于某种原因,您不能预编译。

http://stackoverflow.com/questions/3503970/make-python-ignore-pyc-files

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:使Python忽略.pyc文件