New submission from Francois Godin <copel...@gmail.com>:
Using double quote around the version argument will cause a failure. Ex (failure): "py.exe" "-3" "test.py" => run_child: about to run '3" "...\python.exe" "test.py"' => ...\python.exe: can't open file '3 test.py': [Errno 22] Invalid argument Removing the double quote give (success): "py.exe" -3 "test.py" => run_child: about to run '"...\python.exe" "test.py"' This is mainly problematic when a library or a tool want to be simpler and simply add double quotes around every parameters. This is impossible to do with the python launcher. The issue seems to come from the PC/launcher.c file. It is the following line in the function process (around line 1622): command += wcslen(p); This line is suppose to skip the -3 in the command line so that the rest can be given to python as-is. The problem is that while command come from GetCommandLineW and thus contain quote, p come from __wargv and does not contain the double quote. Thus, the 2 characters "- are skipped instead of -3. ---------- components: Demos and Tools, Distutils, Windows messages: 322802 nosy: copelnug, dstufft, eric.araujo, paul.moore, steve.dower, tim.golden, zach.ware priority: normal severity: normal status: open title: Windows py.exe launcher fail to handle quote correctly versions: Python 3.6, Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34297> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com