Which version of MSVC?90.DLL's to distribute with Python 2.6 based Py2exe executables?

Jonathan Hartley tartley at tartley.com
Sat Dec 26 19:17:09 EST 2009


On Dec 26, 3:14 pm, Ross Ridge <rri... at csclub.uwaterloo.ca> wrote:
> Jonathan Hartley  <tart... at 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... at 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.



More information about the Python-list mailing list