我正在将csh脚本转换为python脚本。该脚本调用一个占用大量内存的可执行文件,该文件需要非常大的堆栈,因此csh脚本将stacksize设置为无限制:
limit stacksize unlimited
当我尝试在python中重现此脚本时,我会使用os.system,以非常幼稚的方式执行它们,例如:
os.system
os.system('some_executable')
但是我不知道如何告诉操作系统以不受限制的堆栈大小运行这些可执行文件。有没有办法为python脚本中的调用指定stacksize?我应该使用一些底层系统调用吗?并且有一个模块(类似于shutil)来控制它吗?
我对以下代码有很好的经验。它不需要任何特殊的用户权限:
import resource, sys resource.setrlimit(resource.RLIMIT_STACK, (2**29,-1)) sys.setrecursionlimit(10**6)
但是它似乎不适用于pypy。