import os, sys program = sys.executable code = 'import pprint, sys; pprint.pprint(sorted(sys.path))' argv = [program, '-c', code] isolate = True uid = 12345 gid = 12345 pid = os.fork() if not pid: # child process if isolate: os.setgid(gid) os.setuid(uid) os.environ.pop('HOME', None) try: os.execl(argv[0], *argv) print("exec failed()!?") sys.exit(1) except Exception as exc: print("CHILD ERROR: %s" % exc) sys.exit(1) else: pid, status = os.waitpid(pid, 0) print("PARENT: child exited with status %s" % (status,))