[Python-Dev] Disabling changing sys.argv[0] with runpy.run_module(...alter_sys=True)

Mike Kaplinskiy mike.kaplinskiy at gmail.com
Thu Feb 18 17:37:51 EST 2016


Done: http://bugs.python.org/issue26388

On Wed, Feb 17, 2016 at 10:44 AM, Brett Cannon <brett at python.org> wrote:

>
>
> On Tue, 16 Feb 2016 at 20:59 Mike Kaplinskiy <mike.kaplinskiy at gmail.com>
> wrote:
>
>> Hey folks,
>>
>> I hope this is the right list for this sort of thing (python-ideas seemed
>> more far-fetched).
>>
>> For some context: there is currently a issue with pex that causes
>> sys.modules lookups to stop working for __main__. In turns this makes
>> unittest.run() & pkg_resources.resource_* fail. The root cause is that pex
>> uses runpy.run_module with alter_sys=False. The fix should be to just pass
>> alter_sys=True, but that changes sys.argv[0] and various existing pex files
>> depend on that being the pex file. You can read more at
>> https://github.com/pantsbuild/pex/pull/211 .
>>
>> Conservatively, I'd like to propose adding an argument to disable this
>> behavior. The current behavior breaks a somewhat reasonable invariant that
>> you can restart your program via `os.execv([sys.executable] + sys.argv)`.
>> Moreover it might be user-friendly to add a `argv=sys.argv[1:]` argument to
>> set & restore the full arguments to the module, where `argv=None` disables
>> argv[0] switching.
>>
>> What do you think?
>>
>
> This probably is best served as a feature request on bugs.python.org
> since it's not asking for some massive change or new feature but just a
> minor tweak to a module.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20160218/a04ce961/attachment.html>


More information about the Python-Dev mailing list