summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-06-25 13:02:43 (GMT)
committerGitHub <noreply@github.com>2019-06-25 13:02:43 (GMT)
commit3939c321c90283b49eddde762656e4b1940e7150 (patch)
treef2b8429629e80925feac81280c7696a16a0328ea /Doc/whatsnew
parent080b6b40fa6c6ddc79dcfcadab575bb1be3f47e9 (diff)
downloadcpython-3939c321c90283b49eddde762656e4b1940e7150.zip
cpython-3939c321c90283b49eddde762656e4b1940e7150.tar.gz
cpython-3939c321c90283b49eddde762656e4b1940e7150.tar.bz2
bpo-20443: _PyConfig_Read() gets the absolute path of run_filename (GH-14053)
Python now gets the absolute path of the script filename specified on the command line (ex: "python3 script.py"): the __file__ attribute of the __main__ module, sys.argv[0] and sys.path[0] become an absolute path, rather than a relative path. * Add _Py_isabs() and _Py_abspath() functions. * _PyConfig_Read() now tries to get the absolute path of run_filename, but keeps the relative path if _Py_abspath() fails. * Reimplement os._getfullpathname() using _Py_abspath(). * Use _Py_isabs() in getpath.c.
Diffstat (limited to 'Doc/whatsnew')
-rw-r--r--Doc/whatsnew/3.9.rst8
1 files changed, 8 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 95e12ff..b58c99b 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -75,6 +75,14 @@ New Features
Other Language Changes
======================
+* Python now gets the absolute path of the script filename specified on
+ the command line (ex: ``python3 script.py``): the ``__file__`` attribute of
+ the ``__main__`` module, ``sys.argv[0]`` and ``sys.path[0]`` become an
+ absolute path, rather than a relative path. These paths now remain valid
+ after the current directory is changed by :func:`os.chdir`. As a side effect,
+ a traceback also displays the absolute path for ``__main__`` module frames in
+ this case.
+ (Contributed by Victor Stinner in :issue:`20443`.)
New Modules