#1302: installing Python 3 breaks bin\tahoe on Windows ----------------------------+----------------------------------------------- Reporter: davidsarah | Owner: somebody Type: defect | Status: new Priority: major | Milestone: undecided Component: packaging | Version: 1.8.1 Resolution: | Keywords: windows regression setuptools Launchpad Bug: | ----------------------------+-----------------------------------------------
Comment (by davidsarah): This is a regression in Tahoe-LAFS v1.8.0 relative to v1.7.1, caused by the fix to #1074. Before v1.8.0, {{{bin\tahoe.exe}}} (built from [http ://tahoe-lafs.org/trac/zetuptoolz/browser/trunk/launcher.c?rev=583#L186 this source]) would have run the Python executable from {{{tahoe- script.py}}}'s shebang line, which is the one used for the Tahoe build/install, so it would have worked for the same reason as it does from a Cygwin prompt. So, my bad :-( Possible solutions (that don't regress #1074): a. Have [source:setuptools-0.6c16dev3.egg/setuptools/command/scriptsetup.py scriptsetup] associate .pyscript\shell\open\command with the current Python interpreter ({{{sys.executable}}} when scriptsetup is run) rather than Python.File. b. Make {{{tahoe.pyscript}}} work with "any" Python version, but use the Python executable from build time to run {{{support\Scripts\tahoe.pyscript}}}. c. Make {{{bin\tahoe}}} something other than a Python script (for example, a .bat or .cmd file). Note that a. has the property that if you run build/install with version X of Python, then all copies of Tahoe for the current user (since v1.8.0) will then use version X, rather than just the one you're building/installing. That differs from the behaviour on other operating systems or from a Cygwin prompt. I think b. is a bad idea; we eventually want to get rid of {{{tahoe.pyscript}}} (at least Brian and I do). Also, it imports pkg_resources, so pkg_resources would also have to work in Python 3, which is impractical/too much work. I tested c. with a {{{bin\tahoe.cmd}}} file containing {{{ @C:\Python26\python.exe <full path to renamed tahoe.pyscript> %* }}} It worked once, and from then on failed silently. (I've seen this behaviour before with .cmd and .bat files on my system, and have never got to the bottom of it. Perhaps the Windows installation is just broken.) In summary, I'm not sure how to fix this yet. -- Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1302#comment:1> tahoe-lafs <http://tahoe-lafs.org> secure decentralized storage _______________________________________________ tahoe-dev mailing list tahoe-dev@tahoe-lafs.org http://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev