diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py --- a/Lib/test/test_cmd_line.py +++ b/Lib/test/test_cmd_line.py @@ -35,19 +35,20 @@ class CmdLineTest(unittest.TestCase): def test_site_flag(self): self.verify_valid_flag('-S') def test_usage(self): rc, out, err = assert_python_ok('-h') self.assertIn(b'usage', out) def test_version(self): - version = ('Python %d.%d' % sys.version_info[:2]).encode("ascii") - rc, out, err = assert_python_ok('-V') - self.assertTrue(err.startswith(version)) + version = ('Python %d.%d' % sys.version_info[:2]).encode('ascii') + for cmd in ('-V', '--version'): + output = assert_python_ok(cmd)[1] + self.assertTrue(output.startswith(version)) def test_verbose(self): # -v causes imports to write to stderr. If the write to # stderr itself causes an import to happen (for the output # codec), a recursion loop can occur. rc, out, err = assert_python_ok('-v') self.assertNotIn(b'stack overflow', err) rc, out, err = assert_python_ok('-vv') diff --git a/Modules/main.c b/Modules/main.c --- a/Modules/main.c +++ b/Modules/main.c @@ -495,17 +495,17 @@ Py_Main(int argc, wchar_t **argv) } } if (help) return usage(0, argv[0]); if (version) { - fprintf(stderr, "Python %s\n", PY_VERSION); + fprintf(stdout, "Python %s\n", PY_VERSION); return 0; } if (!Py_InspectFlag && (p = Py_GETENV("PYTHONINSPECT")) && *p != '\0') Py_InspectFlag = 1; if (!saw_unbuffered_flag && (p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0')