New submission from Geoff Alexander <gd...@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 <rep...@bugs.python.org>
<https://bugs.python.org/issue36213>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to