[Python-Dev] Set program name through exec -a or environment variable

Freddy Rietdijk freddyrietdijk at fridh.nl
Sat Mar 18 09:15:12 EDT 2017


Hi,

I would like to know if you're open to supporting `exec -a` or an
environment variable for setting `argv[0]`, and have some pointers as to
where that should be implemented.

On Nixpkgs we typically use wrappers to set environment variables like PATH
or PYTHONPATH for individual programs. Consider a program named `prog`. We
move the original program `prog` to `.prog-wrapped` and then create a
wrapper `prog` that does `exec -a prog .prog-wrapped`.

Unfortunately `exec -a` does not work with Python. The process is still
named `.prog-wrapped` (although that's not really a problem) but worse,
`sys.argv[0]` is also `.prog-wrapped`. Currently we inject some code in
programs that sets `sys.argv=[0] = "prog" but this is fragile and I would
prefer to get rid of this.

Kind regards,

Frederik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20170318/87a15dde/attachment.html>


More information about the Python-Dev mailing list