Someone changed test_popen to "quote" the path to python: cmd = '"%s" -c "import sys;print sys.argv" %s' % (sys.executable, cmdline) ^ ^ The double-quote characters above the carets are new. This causes test_popen to fail on Win2K, but not on Win98. The relevant difference appears to be the default shell (cmd.exe on the former, command.com on the latter). Simplifed example, on Win2K: >>> p = os.popen('python -c "print 666"') >>> p.read() '666\n' >>> p.close() >>> Worked fine, but doesn't if python is quoted: >>> p = os.popen('"python" -c "print 666"') >>> p.read() '' >>> p.close() 1 >>> The same kind of behavior can be observed directly from a DOS-box prompt: C:\Code\python\PCbuild>cmd /c python -c "print 666" 666 C:\Code\python\PCbuild> Worked fine, but quoting the program name flops: C:\Code\python\PCbuild>cmd /c "python" -c "print 666" 'python" -c "print' is not recognized as an internal or external command, operable program or batch file. C:\Code\python\PCbuild> So it looks like it stripped off the first and last double-quote characters, leaving two senseless double-quote characters "in the middle". >From the docs for cmd.exe: """ If /C or /K is specified, then the remainder of the command line after the switch is processed as a command line, where the following logic is used to process quote (") characters: 1. If all of the following conditions are met, then quote characters on the command line are preserved: - no /S switch - exactly two quote characters - no special characters between the two quote characters, where special is one of: &<>()@^| - there are one or more whitespace characters between the the two quote characters - the string between the two quote characters is the name of an executable file. 2. Otherwise, old behavior is to see if the first character is a quote character and if so, strip the leading character and remove the last quote character on the command line, preserving any text after the last quote character. """ We're apparently in case #2, if for no other reason then for that there aren't "exactly two quote characters". I'll check in a hack to worm around this in the test, but anyone who can do better, please do (I won't have access to a Win2K box next week).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4