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

Oleg Broytman phd at phdru.name
Sat Mar 18 11:43:47 EDT 2017


On Sat, Mar 18, 2017 at 10:27:58AM -0500, Ryan Gonzalez <rymg19 at gmail.com> wrote:
> exec -a would seem to end up setting argv[0] on the CPython interpreter
> itself, which I don't think is the desired effect...

   That's exactly what OP asked -- how to change that?

> --
> Ryan (????????????)
> Yoko Shimomura > ryo (supercell/EGOIST) > Hiroyuki Sawano >> everyone else
> http://refi64.com
> 
> On Mar 18, 2017 10:11 AM, "Freddy Rietdijk" <freddyrietdijk at fridh.nl> wrote:
> > 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

Oleg.
-- 
     Oleg Broytman            http://phdru.name/            phd at phdru.name
           Programmers don't die, they just GOSUB without RETURN.


More information about the Python-Dev mailing list