On 27/12/2009 05:18, Stephen Hansen wrote:
Jonathan Hartley <tart...@tartley.com <mailto:tart...@tartley.com>>
writes:
These
are non-technical users, so I'd rather send them a single executable
that 'just works',
[break]
rather than asking them to install Python and then
coach them through running a script - they would HATE that as a
solution.
Whoa... How can you go from "single executable that 'just works'" to
"asking them to install Python and then coach them" -- there's /miles/
of difference between the two of those options and countless places
for you to sit between them.
This isn't an issue which is unique to Python, or which has anything
to do with Python at all-- or that Python has any power to do anything
about. This is the platform and ecosystem that Microsoft has made for
you, and they alone have any power to change anything in this arena.
This is their code, not Python's, and they define the rules by which
you can use it.
One way to get those files is to just install python, yes. As Python
was compiled with a legally licensed version of Visual C++ (though
gratis from Microsoft, I believe), they have the rights to
redistribute those files. Here though, /you/ are creating a new work--
and even though it includes Python its not a derivative of Python--
and distributing it. The question is, do /you/ have the right to
distribute those files? That Python did originally, and you're using
Python, does not automatically mean that yes you do-- lawyer-logic
does not necessarily equate to layman-logic.
I have no idea what the answer to that question is, actually; IANAL
and I have never needed to make a stand-alone windows exe out of
python where it wasn't a simple matter to include a link to
Microsoft's website where anyone is free to download and install those
redistributable components.
This came up a few years ago if memory serves, and I don't remember
anyone having a conclusive answer to it, and people argued a bit over
Microsoft's EULA granting redistribution rights. I don't remember any
actual lawyers chiming in, so I think the question was never solved:
and that means in the end you should assume you do not have the right,
as the assumption in the other direction is sorta bad.
Yes, in an ideal world people wouldn't need to run anything but your
.exe. But the reality is, they probably will need to install the
redistributable -- but come on.. The VC2008 (which is VC++ 9.0, which
is what Python was compiled with) package is only 1.7 megs. Its not
*that* big of a deal to say hey, if it doesn't work install this.
There's nothing else you (or anyone else) can do about it. Until
Microsoft open-sources Visual Studio :)
--S
Thanks Steve, there's clearly much sense is what you say.
I recognise that this isn't unique to Python, nor the result of anything
Python has any control over. However, I keep imagining slash hoping that
we might have *engineered* our way around the situation. :-)
For example, I clearly don't know what I'm talking about, but might it
be possible to bundle the VC redistributable installer with your
exectutable, such that if the required DLL's are not already on the
user's system, then we run the installer to create them. The logic to do
this could be in a PyPI package, or else built into py2exe and similar.
Then the application developer would only need to add a single option to
py2exe in order for this whole issue to pretty much go away? Or am I
misunderstanding?
--
http://mail.python.org/mailman/listinfo/python-list