comparing alternatives to py2exe

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Mon Nov 9 21:16:40 EST 2009


En Fri, 06 Nov 2009 17:00:17 -0300, Philip Semanchuk  
<philip at semanchuk.com> escribió:
> On Nov 3, 2009, at 10:58 AM, Jonathan Hartley wrote:
>>
>> Recently I put together this incomplete comparison chart in an attempt
>> to choose between the different alternatives to py2exe:
>>
>> http://spreadsheets.google.com/pub?key=tZ42hjaRunvkObFq0bKxVdg&output=html
>
> I was interested in py2exe because we'd like to provide a one download,  
> one click install experience for our Windows users. I think a lot of  
> people are interested in py2exe for the same reason. Well, one thing  
> that I came across in my travels was the fact that distutils can create  
> MSIs. Like py2exe, MSIs provide a one download, one click install  
> experience under Windows and therefore might be a replacement for py2exe.

But py2exe and .msi are complementary, not a replacement.
py2exe collects in one directory (or even in one file in some cases) all  
the pieces necesary to run your application. That is, Python itself + your  
application code + all referenced libraries + other required pieces.
The resulting files must be installed in the client machine; you either  
build a .msi file (a database for the Microsoft Installer) or use any  
other installer (like InnoSetup, the one I like).

> For me, the following command was sufficient to create an msi, although  
> it only worked under Windows (not under Linux or OS X):
> python setup.py bdist_msi
>
> The resulting MSI worked just fine in my extensive testing (read: I  
> tried it on one machine).

The resulting .msi file requires Python already installed on the target  
machine, if I'm not mistaken. The whole point of py2exe is to avoid  
requiring a previous Python install.

> It seems, then, that creating an MSI is even within the reach of someone  
> like me who spends very little time in Windows-land, so it might be  
> worth a column on your chart alongside rpm/deb.

As said in http://wiki.python.org/moin/DistributionUtilities the easiest  
way is to use py2exe + InnoSetup.

-- 
Gabriel Genellina




More information about the Python-list mailing list