bpo-34008: Allow to call Py_Main() after Py_Initialize() (GH-8043) (GH-8352)

Py_Main() can again be called after Py_Initialize(), as in Python
3.6. The new configuration is ignored, except of
_PyMainInterpreterConfig.argv which is used to update sys.argv.
(cherry picked from commit fb47bca9ee2d07ce96df94b4e4abafd11826eb01)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
diff --git a/Modules/main.c b/Modules/main.c
index 3809fa4..31ebbce 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -2647,9 +2647,13 @@
 
     pymain_init_stdio(pymain);
 
-    pymain->err = _Py_InitializeCore(&pymain->config);
-    if (_Py_INIT_FAILED(pymain->err)) {
-        _Py_FatalInitError(pymain->err);
+    /* bpo-34008: For backward compatibility reasons, calling Py_Main() after
+       Py_Initialize() ignores the new configuration. */
+    if (!_PyRuntime.initialized) {
+        pymain->err = _Py_InitializeCore(&pymain->config);
+        if (_Py_INIT_FAILED(pymain->err)) {
+            _Py_FatalInitError(pymain->err);
+        }
     }
 
     if (pymain_init_python_main(pymain) < 0) {