From: Victor Stinner Date: Tue, 9 Apr 2013 22:27:23 +0000 (+0200) Subject: Close #14439: Python now prints the traceback on runpy failure at startup. X-Git-Tag: v3.4.0a1~996 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7d36e4f074a0141966394284f877bbe2270ccd93;p=thirdparty%2FPython%2Fcpython.git Close #14439: Python now prints the traceback on runpy failure at startup. --- diff --git a/Misc/NEWS b/Misc/NEWS index 1cb81fe7a9cf..38f6cde61987 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,8 @@ What's New in Python 3.4.0 Alpha 1? Core and Builtins ----------------- +- Issue #14439: Python now prints the traceback on runpy failure at startup. + - Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks() when running on valgrind. @@ -1053,7 +1055,7 @@ IDLE - Issue #6698: IDLE now opens just an editor window when configured to do so. -- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer +- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer raises an exception. - Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo. @@ -1092,7 +1094,7 @@ IDLE - Issue #6698: IDLE now opens just an editor window when configured to do so. -- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer +- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer raises an exception. - Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo. diff --git a/Modules/main.c b/Modules/main.c index 79ad6f595565..1d6c09a26953 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -167,17 +167,20 @@ static int RunModule(wchar_t *modname, int set_argv0) runpy = PyImport_ImportModule("runpy"); if (runpy == NULL) { fprintf(stderr, "Could not import runpy module\n"); + PyErr_Print(); return -1; } runmodule = PyObject_GetAttrString(runpy, "_run_module_as_main"); if (runmodule == NULL) { fprintf(stderr, "Could not access runpy._run_module_as_main\n"); + PyErr_Print(); Py_DECREF(runpy); return -1; } module = PyUnicode_FromWideChar(modname, wcslen(modname)); if (module == NULL) { fprintf(stderr, "Could not convert module name to unicode\n"); + PyErr_Print(); Py_DECREF(runpy); Py_DECREF(runmodule); return -1; @@ -186,6 +189,7 @@ static int RunModule(wchar_t *modname, int set_argv0) if (runargs == NULL) { fprintf(stderr, "Could not create arguments for runpy._run_module_as_main\n"); + PyErr_Print(); Py_DECREF(runpy); Py_DECREF(runmodule); Py_DECREF(module);