diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst index 3f6b68d133c..b703f0aaf3c 100644 --- a/Doc/using/windows.rst +++ b/Doc/using/windows.rst @@ -74,6 +74,31 @@ installation". In this case: * If selected, the install directory will be added to the system :envvar:`PATH` * Shortcuts are available for all users +.. _max-path: + +Removing the MAX_PATH Limitation +-------------------------------- + +Windows historically has limited path lengths to 260 characters. This meant that +paths longer than this would not resolve and errors would result. + +In the latest versions of Windows, this limitation can be expanded to +approximately 32,000 characters. Your administrator will need to activate the +"Enable Win32 long paths" group policy, or set the registry value +``HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem@LongPathsEnabled`` +to ``1``. + +This allows the :func:`open` function, the :mod:`os` module and most other +path functionality to accept and return paths longer than 260 characters when +using strings. (Use of bytes as paths is deprecated on Windows, and this feature +is not available when using bytes.) + +After changing the above option, no further configuration is required. + +.. versionchanged:: 3.6 + + Support for long paths was enabled in Python. + .. _install-quiet-option: Installing Without UI diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index fde5159364c..6a1eccf3186 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -83,6 +83,10 @@ Windows improvements: command line arguments or a config file). Handling of shebang lines remains unchanged - "python" refers to Python 2 in that case. +* ``python.exe`` and ``pythonw.exe`` have been marked as long-path aware, + which means that when the 260 character path limit may no longer apply. + See :ref:`removing the MAX_PATH limitation ` for details. + .. PEP-sized items next. .. _pep-4XX: @@ -507,7 +511,6 @@ The Linux ``getrandom()`` syscall (get random bytes) is now exposed as the new :func:`os.getrandom` function. (Contributed by Victor Stinner, part of the :pep:`524`) - pickle ------ diff --git a/Misc/NEWS b/Misc/NEWS index 1a7ef761f8c..002e4be411a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -237,6 +237,8 @@ Build Windows ------- +- Issue #27731: Opt-out of MAX_PATH on Windows 10 + - Issue #6135: Adds encoding and errors parameters to subprocess. - Issue #27959: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to diff --git a/PC/python.manifest b/PC/python.manifest index d6e4bbadb65..4e73d60df28 100644 --- a/PC/python.manifest +++ b/PC/python.manifest @@ -16,10 +16,15 @@ + + + true + + - \ No newline at end of file +