diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-06-25 13:02:43 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-25 13:02:43 (GMT) |
commit | 3939c321c90283b49eddde762656e4b1940e7150 (patch) | |
tree | f2b8429629e80925feac81280c7696a16a0328ea /Doc/whatsnew | |
parent | 080b6b40fa6c6ddc79dcfcadab575bb1be3f47e9 (diff) | |
download | cpython-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.rst | 8 |
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 |