[英]How to force python to ignore or recreate pyc/pyo files?
我正在开发一个使用多处理和进程池的科学python应用程序。 有时我犯了一个错误,自己掏出炸弹。 这导致我的笔记本电脑冻结,我需要进行硬重置。 但是,当我再次加载时,我的python安装似乎已损坏。 我在import string
等基本导入上遇到奇怪的错误。
我追溯到这一点,看起来python正试图为系统目录中安装的一些系统模块制作pyc / pyo(我在Windows中工作)。 我可以通过单击安装目录,按修改时间排序并根据修改日期手动删除在该运行中创建的所有pyc / pyo来临时解决此问题。
有没有办法强制python忽略任何现有的pyc / pyos并在解释器的启动时重新创建它们? 或者,删除系统Python安装中的所有 pyc / pyo对象是否安全? 在我的情况下,这是C:\\Python27
。
通常,强制重新编译的简单方法是删除.pyc文件,但在系统文件的情况下,您可能没有.py所以要特别小心。
您最好的选择可能是创建一个虚拟环境作为沙箱并保护您的文件,您可以根据需要轻松地重新创建它。
如果你已经从这样运行那么可能你的任务不是你应该检查这个。
我还强烈建议像限制用户那样运行测试,而不是像管理员或具有管理员权限的高级用户那样,这可能会使一些工作在没有管理员权限的情况下运行,但有一些优点:
您可以触摸所有.py,然后强制导入。
但是你为什么要这样做呢?
我另外看到的一个主要用例是当你在git存储库中工作并在分支上切换时。 .py文件可能会使用不同的内容签出但使用较旧的时间戳。 如果您不以某种方式强制重新创建.pyc文件,则会出现问题。
CKol
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.