[New-bugs-announce] [issue36213] subprocess.check_output() fails with OSError: [WinError 87] when current directory name is too long
Geoff Alexander
report at bugs.python.org
Wed Mar 6 09:37:16 EST 2019
New submission from Geoff Alexander <gdlxn at us.ibm.com>:
I've found that subprocess.check_output() fails on Windows with OSError: [WinError 87] when the current directory's name is too long:
```
Traceback (most recent call last):
File "migration.py", line 169, in <module>
migrate()
File "migration.py", line 80, in migrate
rtc.acceptchangesintoworkspace(rtc.getchangeentriestoaccept(changeentries, history))
File "c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\rtcFunctions.py", line 310, in acceptchangesintoworkspace
Commiter.addandcommit(changeEntry)
File "c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\gitFunctions.py", line 97, in addandcommit
Commiter.handle_captitalization_filename_changes()
File "c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\gitFunctions.py", line 130, in handle_captitalization_filename_changes
files = shell.getoutput("git ls-files")
File "c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\shell.py", line 33, in getoutput
outputasbytestring = check_output(command, shell=True)
File "C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 356, in check_output
**kwargs).stdout
File "C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 423, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 729, in __init__
restore_signals, start_new_session)
File "C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 1017, in _execute_child
startupinfo)
OSError: [WinError 87] The parameter is incorrect
```
Python's subprocess module should handle long directory and files names on Windows where supported. For older versions of Windows that don't support long directory and file names, an exception with a more informative error message than "OSError: [WinError 87]" should be thrown.
----------
components: Windows
messages: 337307
nosy: Geoff.Alexander, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: subprocess.check_output() fails with OSError: [WinError 87] when current directory name is too long
versions: Python 3.7
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue36213>
_______________________________________
More information about the New-bugs-announce
mailing list