]> granicus.if.org Git - python/commitdiff
Issue #27731: Opt-out of MAX_PATH on Windows 10
authorSteve Dower <steve.dower@microsoft.com>
Wed, 7 Sep 2016 03:40:11 +0000 (20:40 -0700)
committerSteve Dower <steve.dower@microsoft.com>
Wed, 7 Sep 2016 03:40:11 +0000 (20:40 -0700)
Doc/using/windows.rst
Doc/whatsnew/3.6.rst
Misc/NEWS
PC/python.manifest

index 3f6b68d133c875654dae54a4efa2500b8844d02f..b703f0aaf3c6fc48ad089703239191c6e4916d06 100644 (file)
@@ -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
index fde5159364c5c38a903da4be4dd99210eaf1f39b..6a1eccf3186c6dbd95615c92c722f321aa8592a0 100644 (file)
@@ -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:
@@ -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
 ------
 
index 1a7ef761f8cace759c812f2fe84bc6a72ac31e29..002e4be411a62c46f2f0d0ac82f8c2c6979ff5a1 100644 (file)
--- 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
index d6e4bbadb65963a49f628a8eb34dbd6f0484f2be..4e73d60df2842d0aed31a57a4575161edddd3bb0 100644 (file)
       <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>
\ No newline at end of file
+</assembly>