python - 如何强制 python 忽略或重新创建 pyc/pyo 文件?

标签 python multiprocessing

我正在开发一个使用多处理和进程池的科学 Python 应用程序。有时我会犯错误并用 fork 轰炸自己。这导致我的笔记本电脑死机,我需要进行硬重置。但是,当我再次加载时,我的 python 安装似乎已损坏。我在诸如 import string 之类的基本导入中遇到了奇怪的错误。

我将其追溯到一个点,看起来 python 正在尝试为系统目录中安装的一些系统模块制作 pyc/pyo(我在 Windows 中工作)。我可以通过单击安装目录、按修改时间排序并根据修改日期手动删除在该运行时创建的所有 pyc/pyo 来临时解决此问题。

有没有办法强制 python 忽略任何现有的 pyc/pyos 并在启动解释器时重新创建它们?或者,删除系统 Python 安装中的 所有 pyc/pyo 对象是否安全?在我的例子中是 C:\Python27

最佳答案

通常,强制重新编译的简单方法是删除 .pyc 文件,但对于系统文件,您可能没有 .py,因此请格外小心。

您最好的选择可能是创建一个 virtual environment作为沙盒并为了保护您的文件,您可以根据需要轻松地重新创建它。

如果您已经在运行,那么您的任务可能不是您应该检查一下。

我还强烈建议以受限用户而不是管理员或具有管理员权限的高级用户身份运行这样的测试,这可能 一开始要多做一些工作,让它在没有管理员权限的情况下运行,但有几个优点:

  1. 安全 - 受限用户必须非常努力地工作才能破坏系统,即如果管理员为所有用户安装了 python,则受限用户不应该对安装目录具有写入权限,
  2. 部署 - 如果您将您的代码传递给其他用户,他们可能没有管理员权限,但您会知道您的代码将在没有他们的情况下运行(前提条件),
  3. 可移植性——如果您想在 Linux 机器上运行,您的代码不需要管理员权限即可运行,
  4. 可扩展性 - 如果您有机会在 super 计算机/集群上运行您的代码,我可以保证它不会以管理员身份运行。

关于python - 如何强制 python 忽略或重新创建 pyc/pyo 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305033/

相关文章:

python - 在 Pandas 中使用多处理读取 csv 文件的最简单方法

python - GCP Dataflow + Apache Beam - 缓存问题

python - matplotlib 图例中的下划线文本

python - 如何重写 tensorflow 图以使用 CPU 进行所有操作

Python 管道子进程在连接后挂起

python - 多处理队列未加入

python - 通过多线程/多处理卡住的 Kill 方法

Python-在字符串中插入一个字符

python - 存在一些顺序无关紧要的单词的正则表达式

python - 为运行多处理队列的 python 脚本激活内存不足 killer ?