Setting stacksize in a python script
csh, python, stack
Solution
I have good experience with the following code. It doesn't require any special user permissions:
import resource, sys
resource.setrlimit(resource.RLIMIT_STACK, (2**29,-1))
sys.setrecursionlimit(10**6)
It does however not seem to work with pypy.
If `resource.setrlimit` doesn't work, you can also try using threads:
sys.setrecursionlimit(10**6)
import threading
threading.stack_size(2**26)
threading.Thread(target=main).start()
Problem
I am converting a csh script to a python script. The script calls a memory-intensive executable which requires a very large stack, so the csh script sets the stacksize to unlimited: ``` limit stacksize unlimited ``` When I try to reproduce this script in python, I execute them in a very naive manner, using `os.system`, e.g.: ``` os.system('some_executable') ``` But I do not know how to tell the OS to run these executables with unlimited stacksize. Is there a way to specify stacksize for calls within a python script? Is there some low-level system call that I should be using? And is there a module (similar to shutil) which controls this?