1

所以我在搞乱一个应该使用os.execl. 它工作了几次,但在大约 30 或 40 次调用后它崩溃了;

Traceback (most recent call last):
  File "C:\Users\Admin#\PycharmProjects\DiscordBot_Fred_the_Financier\test_suit.py", line 9, in <module>
    os.execl(sys.executable, sys.executable, *(*sys.argv, code))
  File "C:\Users\Admin#\AppData\Local\Programs\Python\Python37\lib\os.py", line 540, in execl
    execv(file, args)
OSError: [Errno 12] Not enough space

所以这是我实际运行的整个代码:

import sys 
import os

print(sys.argv) # print args
code = "" # placeholder for mutable args
os.execl(sys.executable, sys.executable, *(*sys.argv, code)) # passing new args and replacing process

我真的不知道为什么以及如何发生此错误。
我所有的驱动器都有超过 200 GB 的可用存储空间,我的 RAM 也超过 17 GB。
我正在通过 Win10 64bit python 3.7 上的终端运行此代码。
非常感谢您的帮助!

PS如果这个问题已经有了答案,但我找不到答案,我深表歉意。

4

1 回答 1

0

您是否在脚本中打开任何大文件?很可能您没有关闭这些文件句柄并且它们不断累积。一旦脚本崩溃,所有的句柄都会被释放,你会看到 200GB

在运行脚本时,您能留意磁盘使用情况吗?你看到它不断上升吗?(至少在随后的 exec 调用之后)

编辑:我现在看到这个问题是在“20 年 3 月 28 日 18:58”中提出的。我不知道为什么我在主列表中看到它。如果 OP 没有回复或提供更多信息,则可以关闭问题。

于 2021-02-10T17:44:07.180 回答