[issue28441] sys.executable is ambiguous on Cygwin without .exe suffix

2016-10-17 Thread Erik Bray

Erik Bray added the comment:

I agree this has a slight change in behavior which I was at first hesitant 
about.  But I think the previous behavior was wrong insofar as it was overly 
ambiguous.  I agree it should apply on MSYS2 as well (I actually thought 
__CYGWIN__ was defined on MSYS2 but I could be wrong about that).

I'm not sure what better solution there is.  I thought of tinkering with 
subprocess specifically, but that was too fragile.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28441] sys.executable is ambiguous on Cygwin without .exe suffix

2016-10-15 Thread Masayuki Yamamoto

Masayuki Yamamoto added the comment:

This patch has impact to end user, thus I don't agree to apply as far as Cygwin 
to avoid user surprise.
I think to need a consistency between other platforms having executable suffix 
(e.g. MSYS2), and also the patch needs short documentation of changing behavior 
to description for sys.executable.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28441] sys.executable is ambiguous on Cygwin without .exe suffix

2016-10-14 Thread Erik Bray

New submission from Erik Bray:

This actually came up previously in #1543469 in the context of test_subprocess, 
but it's a more general issue that I thought was worth addressing somehow.

The issue here is that as Cygwin tries to provide a "UNIX-like" experience, any 
system interfaces that take the path to an executable as an argument allow the 
.exe extension to be left off.  This is particularly convenient for the shell 
experience, so that one can run, for example "python" or "ls" without typing 
"python.exe"  or "ls.exe" (this is of course true of the Windows cmd shell as 
well).

In the case of ambiguity however--such as when there is both a "python" and a 
"python.exe" in the same path, one must explicitly add the ".exe", otherwise 
the path without the exe is assumed.  This is made even worse when you factor 
in case-insensitivity.

Thus, this becomes a real annoyance when developing Python on Cygwin because 
you get both a "python.exe" and the "Python" directory in your source tree.  
This isn't so much of a problem, except that sys.executable leaves off the 
".exe" (in UNIX-y fashion), so any test that calls Popen([sys.executable]) 
errors out because it thinks you're trying to execute a directory (Python/).

I think the only reasonable fix is to take the patch suggested at #1543469, and 
ensure that the ".exe" suffix is appended to sys.executable on Cygwin.  I think 
that sys.executable should be as unambiguous as possible, and that's the only 
way to make it reasonably unambiguous on Cygwin.

I've attached a patch adapted from the one in #1543469 which solves the issue 
for me.

--
files: cygwin-sys-executable.patch
keywords: needs review, patch
messages: 278651
nosy: erik.bray, masamoto, zach.ware
priority: normal
severity: normal
status: open
title: sys.executable is ambiguous on Cygwin without .exe suffix
type: behavior
versions: Python 3.7
Added file: http://bugs.python.org/file45091/cygwin-sys-executable.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com