Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Issue #27731: Opt-out of MAX_PATH on Windows 10
  • Loading branch information
zooba committed Sep 7, 2016
1 parent 437df90 commit 19ab0fd
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 2 deletions.
25 changes: 25 additions & 0 deletions Doc/using/windows.rst
Expand Up @@ -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
Expand Down
5 changes: 4 additions & 1 deletion Doc/whatsnew/3.6.rst
Expand Up @@ -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 <max-path>` for details.

.. PEP-sized items next.
.. _pep-4XX:
Expand Down Expand Up @@ -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
------

Expand Down
2 changes: 2 additions & 0 deletions Misc/NEWS
Expand Up @@ -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
Expand Down
7 changes: 6 additions & 1 deletion PC/python.manifest
Expand Up @@ -16,10 +16,15 @@
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" />
</dependentAssembly>
</dependency>
</assembly>
</assembly>

0 comments on commit 19ab0fd

Please sign in to comment.