一尘不染

在python脚本中设置stacksize

python

我正在将csh脚本转换为python脚本。该脚本调用一个占用大量内存的可执行文件,该文件需要非常大的堆栈,因此csh脚本将stacksize设置为无限制:

limit stacksize unlimited

当我尝试在python中重现此脚本时,我会使用os.system,以非常幼稚的方式执行它们,例如:

os.system('some_executable')

但是我不知道如何告诉操作系统以不受限制的堆栈大小运行这些可执行文件。有没有办法为python脚本中的调用指定stacksize?我应该使用一些底层系统调用吗?并且有一个模块(类似于shutil)来控制它吗?


阅读 213

收藏
2020-12-20

共1个答案

一尘不染

我对以下代码有很好的经验。它不需要任何特殊的用户权限:

import resource, sys
resource.setrlimit(resource.RLIMIT_STACK, (2**29,-1))
sys.setrecursionlimit(10**6)

但是它似乎不适用于pypy。

2020-12-20