py2exe and library.zip

Timothy Smith timothy at open-networks.net
Wed May 4 08:01:53 EDT 2005


Peter Hansen wrote:

>Timothy Smith wrote:
>  
>
>>Peter Hansen wrote:
>>    
>>
>>>Anything's possible.  Maybe you could explain what you're actually 
>>>trying to accomplish (or the reasons) so we can better understand 
>>>where you're going with this...
>>>
>>>      
>>>
>>exactly what i just stated, i don't want py2exe to zip up it's 
>>library's, but to put them in a sub dir.
>>the reason for this, is so that when users login and update from svn, 
>>they only have to download some tiny pyc files, not a great big zip file 
>>with everything in it ( 99% of which never changes)
>>    
>>
>
>More detail on this version control thing would probably help.  (Things 
>like that are why I asked fo more background... "exactly what I stated" 
>isn't as useful as something like (for example) "I want my app users to 
>use Subversion to retrieve updates to the application without having to 
>download a big zip file".)
>
>Do you know that Subversion has (as I understand it) a fairly 
>intelligent binary file comparison routine, and it will (again, as I 
>understand it) not transmit the entire contents of the zip file but 
>would actually send only the portions that have changed?  At least, 
>that's if the file isn't compressed in some way that prevents this 
>algorithm from working well.  (Note to self: check if zip files that can 
>be in sys.path can be compressed, and if py2exe compresses them.)
>
>Anyway, while this sort of thing isn't directly supported (probably 
>since almost nobody would want to do it, for reasons similar to what 
>Simon has explained), you should be able to work it out yourself.  The 
>.exe produced by py2exe contains a "stub" executable that basically sets 
>  sys.path to point to the .zip file, then runs the main .py which has 
>been integrated into the .exe file (not even compiled to a .pyc, just 
>like normal).  If you modify your main .py to adjust sys.path to point 
>to an external subdirectory, you should be able to leave .py files (or 
>.pyc files) there and use svn to update them.
>
>I'll leave it as an exercise for the reader (mainly because I don't know 
>how to do it offhand) what you should do to prevent py2exe from putting 
>all your files in its zip.  It should probably still put the standard 
>library modules there, since otherwise you'd have little reason to be 
>using py2exe in the first place...
>
>-Peter
>  
>
ideally i'd love to not to have to use py2exe at all, then they can just
update from the stable branch of my svn. the problem with THAT is how to
install python, wx,pysvn,reportlab etc etc on their systems with no
fuss(py2exe convienently packages all dll's together for me). if you
know of a way i can achieve that i'd be your best friend forever.

the whole reason i'm going with the svn updating method is there is no
user interaction required. even getting users to click a single button
to update has proven too much to ask of them :/

the other reason is my particular project gets updated very often, so
you can imagine the combination of users resistant to any kind of
computer use with an environment requiring frequent updating.


i have some other problems to solve before i get to that point, mainly
svn related eg. pysvn whinges because files exist in the working
directory that it wants to update ( with the same name ), only they
aren't under version control.





More information about the Python-list mailing list