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