On Mon, Mar 3, 2014 at 1:47 PM, Mark Lawrence <breamore...@yahoo.co.uk> wrote: > FTR I raised this as http://bugs.python.org/issue20846 and it was closed 11 > minutes after I raised it. I won't say anything else as I'm extremely tired > and irritable and might well regret it later.
Best I can tell, the issue was closed correctly. It doesn't look like a Python or Pip bug, it looks like a bug in pyttsx's packaging. Based on empirical data [1], Pip does properly take care of running 2to3, but *only when told to do so*. Pip can't decide whether it should run 2to3 when it hasn't been told either way, because it's not safe. It can't try compiling .py files and running 2to3 if it gets SyntaxErrors, because what if the SyntaxError is just a SyntaxError, and not a ThisHasntBeenPortedToPython3Error? Then 2to3 might blow up, possibly leaving things in a state that makes the underlying issue very hard to find. It can't try importing the installed package, because what if importing without specific external state in place has ugly side-effects? Pip can't safely do anything it's not told to do with the packages it installs because then responsibility for the fire in your hard drive could be laid at Pip's feet, not the evil evil package author who wrote the code that started the fire. It could be argued that Pip could compile any .py files that it installs and just start screaming if it gets any SyntaxError, but what if your package (for some weird reason) relies on .py file with bad syntax? I don't think Python itself is involved at all here, and I think Pip is doing the right thing. Everything installed successfully into the right place (since `import pyttsx` did find the package); the fact that it SyntaxError'd out is on the package author. My 0.02USD, anyway. -- Zach [1] `pip install sphinx` from a 3.4 venv -- https://mail.python.org/mailman/listinfo/python-list