[New-bugs-announce] [issue36471] PEP 432, PEP 587: Add _Py_RunMain()
STINNER Victor
report at bugs.python.org
Fri Mar 29 08:13:44 EDT 2019
New submission from STINNER Victor <vstinner at redhat.com>:
The PEP 587 adds new functions taking command line arguments:
Py_PreInitializeFromArgs(config, argc, argv)
Py_PreInitializeFromWideArgs(config, argc, argv)
Py_InitializeFromArgs(config, argc, argv)
Py_InitializeFromWideArgs(config, argc, argv)
I propose to add _Py_RunMain() (currently private, until PEP 587 is accepted) to be able to implement something similar to Py_Main() but with way more configuration options:
Example to create an "isolated Python" in a few line of C:
---
#include <Python.h>
int main(int argc, char *argv[])
{
_PyCoreConfig config = _PyCoreConfig_INIT;
config.isolated = 1;
_PyInitError err = _Py_InitializeFromArgs(&config, argc, argv);
if (_Py_INIT_FAILED(err)) {
_Py_ExitInitError(err);
}
return _Py_RunMain();
}
---
It's like the regular "python3" program, except that it's always isolated:
---
$ my-isolated-python
Python 3.8.0a3+ (heads/run_main-dirty:d167362ecc, Mar 29 2019, 13:03:30)
>>> 1+1
2
>>> import sys
>>> sys.flags.isolated
1
---
Using _Py_RunMain(), it becomes trivial to implement something like PEP 432's "system python" idea ;-)
----------
components: Interpreter Core
messages: 339106
nosy: ncoghlan, vstinner
priority: normal
severity: normal
status: open
title: PEP 432, PEP 587: Add _Py_RunMain()
versions: Python 3.8
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue36471>
_______________________________________
More information about the New-bugs-announce
mailing list