473,657 Members | 2,765 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

self-extracting installators in Python?

Hi!

I want to implement a small tool in Python for distributing "patches" and I
need Your advice. This application should be able to package all files
chosen by a user into a self-extracting.exe so that when you click on it, it
will extract the files and run setup.exe which among the other will copy
these files into respective folders (the absolute paths could be written in
some config file). Of course the files should be extracted first to a
temporary directory and wiped out after use (the setup will copy them into
respective folders).
I know Python offers a zipfile module to play with ZIP file formats but I am
not sure if it enables creating self-extracting archives too. And what about
"configurin g" the archive to run immediately a setup file after extracting
the files? So my question is: is that possible in Python?

I will be grateful for any hints!

Thank You in advance,

Niki
Jul 18 '05 #1
5 2632
"Nazgul" <lu********@go2 .pl> wrote in message news:<bv******* ***@atlantis.ne ws.tpi.pl>...
Hi!

I want to implement a small tool in Python for distributing "patches" and I
need Your advice. This application should be able to package all files
chosen by a user into a self-extracting.exe so that when you click on it, it
will extract the files and run setup.exe which among the other will copy
these files into respective folders (the absolute paths could be written in
some config file). Of course the files should be extracted first to a
temporary directory and wiped out after use (the setup will copy them into
respective folders).
I know Python offers a zipfile module to play with ZIP file formats but I am
not sure if it enables creating self-extracting archives too. And what about
"configurin g" the archive to run immediately a setup file after extracting
the files? So my question is: is that possible in Python?

I will be grateful for any hints!

Thank You in advance,

Niki


Well... you could write a script to do it and make it executable using
py2exe... or you could build an innosetup distribution - which can be
used to make self-installing packages and is free too use and
distribute (to the best of my knowledge..).

Fuzzyman
Jul 18 '05 #2
all files chosen by a user into a self-extracting.exe so that when
you click on it, it will extract the files and run setup.exe which
used to make self-installing packages and is free too use and
distribute (to the best of my knowledge..).


and with py2exe 0.5.0 a sample is provided to immediately drive innosetup
from python. It is superb

one setup.py, one "F5" in Scite, and a distributable setup.exe is build &
compressed (even with bz2 compression)

REALLY great.

Jul 18 '05 #3
Hello Harald!

It is really great thanks!
Anyway, I don't like the fact that it creates a separate "program" in
the
Add/Remove dialog on Windows :( I don't want any of my patches to be
placed there ... Can I avoid it?

Best Wishes,

Sylwia
Jul 18 '05 #4
Sylwa,

It is really great thanks!
Anyway, I don't like the fact that it creates a separate "program" in
the
Add/Remove dialog on Windows :( I don't want any of my patches to be
placed there ... Can I avoid it?


please do your research on

http://www.jrsoftware.org/isinfo.php
That is the inno setup home page, and inno setup is doing this additions
to "add/remove" dialog.

-------------------------

next: the world leading pc software manufacturer puts his patches into
"add/remove Programs dialog" on windows. And in corporate installations
it is not a bad idea ... imagine the dialog
"did you install Patch xxxx?"
"how can I know?"
"look at Settings, control panel, software..."

--------------------------

next: the lines in add/remove program are nothing more than registry
keys.
And google python modify registry will lead you to some samples of
removing that key AFTER installation

HTH

Harald

Jul 18 '05 #5
Thanks!

Best Regards

Sylwia
Jul 18 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
4703
by: Marc | last post by:
Hi all, I was using Tkinter.IntVar() to store values from a large list of parts that I pulled from a list. This is the code to initialize the instances: def initVariables(self): self.e = IntVar() for part, list in info.masterList.items():
15
2585
by: Ralf W. Grosse-Kunstleve | last post by:
****************************************************************************** This posting is also available in HTML format: http://cci.lbl.gov/~rwgk/python/adopt_init_args_2005_07_02.html ****************************************************************************** Hi fellow Python coders, I often find myself writing:: class grouping:
18
2265
by: Ralf W. Grosse-Kunstleve | last post by:
My initial proposal (http://cci.lbl.gov/~rwgk/python/adopt_init_args_2005_07_02.html) didn't exactly get a warm welcome... And Now for Something Completely Different: class autoinit(object): def __init__(self, *args, **keyword_args): self.__dict__.update(
4
2773
by: David Coffin | last post by:
I'd like to subclass int to support list access, treating the integer as if it were a list of bits. Assigning bits to particular indices involves changing the value of the integer itself, but changing 'self' obviously just alters the value of that local variable. Is there some way for me to change the value of the BitSequence object itself? I've also tried wrapping and delegating using __getattr__, but I couldn't figure out how to handle...
5
1392
by: Mark Harrison | last post by:
Is there a way to do something equivalent to "import * from self"? Perhaps I'm doing something wrong, but I'm having a headache when dealing with class instance data, forgetting to always put the "self." prefix For example, in my brain I'm thinking: optc,args=getopt.getopt(args,cmdopts, cmdopts) but I'm having to type:
7
1904
by: Andrew Robert | last post by:
Hi Everyone, I am having a problem with a class and hope you can help. When I try to use the class listed below, I get the statement that self is not defined. test=TriggerMessage(data) var = test.decode(self.qname)
84
7179
by: braver | last post by:
Is there any trick to get rid of having to type the annoying, character-eating "self." prefix everywhere in a class? Sometimes I avoid OO just not to deal with its verbosity. In fact, I try to use Ruby anywhere speed is not crucial especially for @ prefix is better- looking than self. But things grow -- is there any metaprogramming tricks or whatnot we can throw on the self? Cheers,
6
1807
by: Bart Kastermans | last post by:
I am playing with some trees. In one of the procedures I wrote for this I am trying to change self to a different tree. A tree here has four members (val/type/left/right). I found that self = SS does not work; I have to write self.val = SS.val and the same for the other members (as shown below). Is there a better way to do this? In the below self is part of a parse tree, F is the parse tree of a function f with argument x. If a node...
1
2101
by: lpyth | last post by:
class abc: def __init__(self,x,y,z): self.x = x self.y = y self.z = z def add(self): c = self.x + self.y + self.z
3
1349
by: Aaron Gray | last post by:
Regarding 'self' :- if (self) document.write( "self<br>"); if (self === window) document.write( "self === window<br>"); else if (self == window) document.write( "self == window<br>");
0
8718
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8601
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7314
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6162
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5630
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4300
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2726
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
1937
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1601
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.