On Dec 26, 3:14 pm, Ross Ridge <rri...@csclub.uwaterloo.ca> wrote:
> Jonathan Hartley  <tart...@tartley.com> wrote:
>
> >Am I right to infer that if I want to distribute a py2exe'd
> >application legally, and have half a chance of it working on a non-
> >developer's machine, then I have to:
>
> >a) Ask my users to run the Visual C++ redistributable installer, as
> >well as download my program. This is really unfortunate, since one of
> >the major disadvantages of coding something in Python as opposed to as
> >a web application is the overhead of asking users to download and
> >execute anything at all. Asking them to do it twice seems problematic.
> >Most users would regard this as a deal-breaking hurdle, do you think?
>
> >or
>
> >b) Buy a copy of Visual Studio in order to acquire the rights to
> >distribute msvcr.dll (etc.) along with my application.
>
> If your users are paying to download your program then spending $1000 or
> whatever it is to buy Visual C++ doesn't seem to be unreasonable expense
> to make sure you're staying well within the right side of the law.
> If you're giving it away for free, or aren't expecting to make enough
> money to make spending $1000 worthwhile, then asking them to download
> something sepeately doesn't seem to be unreasonable either.  I give
> my py2exe wrapped application for free so I'm not losing sleep just
> because a few people can't run it because they don't have 7.1 runtime
> already installed.
>
> That said, you might have couple of other options.  Microsoft's
> documentation says that with the Express edition, "it is recommended to
> redistribute Visual C++ libraries using the Visual C++ Redistributable
> Package."  That suggests that you can redistribute the package with your
> application and have your installer run it automatically.  My older copy
> of the Windows SDK includes the Visual C++ 2005 compilers with the C/C++
> runtime merge modules, so lastest version of the SDK might include 2008
> merge modules.
>
> Whatever you do, make sure you install the runtime correctly.  Part of
> the reason for the restrictions on redistributing the runtime is so people
> don't just bindly copy DLLs around.  That leads to older DLLs overriding
> newer DLLs and makes it difficult for Micrsoft to make security fixes.
> In particular they don't want a repeat of the GDI+ fiasco, where a buffer
> overrun of the image processing routines resulted security vulnerabilities
> in a lot of third party applications that couldn't be easily fixed by
> deploying a patched DLL with Windows Update.
>
>                                         Ross Ridge
>
> --
>  l/  //   Ross Ridge -- The Great HTMU
> [oo][oo]  rri...@csclub.uwaterloo.ca
> -()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
>  db  //  

Thanks very much again Ross.

Yeah, I'm looking at two scenarios:

1) Writing some games, which for the moment are free download, and
hence have a high elasticity of demand. If I make the install fiddly,
a lot of people won't bother.

2) About once a week the last couple of months I've had a friend phone
to say 'can you write me a simple program to do X', where X is stuff
like calling a web API to look up info for every postcode/zipcode in a
database. This sort of thing is ideally suited to Python, but then
when I come to send the program to my friend, it never works. These
are non-technical users, so I'd rather send them a single executable
that 'just works', rather than asking them to install Python and then
coach them through running a script - they would HATE that as a
solution.

In each case, at the moment, I don't even have an installer. If I have
to create one just for tiny 50 line applications like case (2), then
that seems a large and cumbersome hurdle, unless the process can be
automated for future projects.

I feel like it would be a huge increase in Python's viability,
usefulness and desirability if we could improve this situation.

Best regards, many thanks to everyone who has contributed to my
understanding on this thread.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to