473,404 Members | 2,195 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,404 software developers and data experts.

deploying big python applications

Hi,

let me describe how I do that today. There is standard python taken from
python.org installed in a c:\python23 with at least dozen different
additional python packages (e.g. SOAPpy, Twisted, wx, many smaller ones
etc) included. Also python23.dll moved from c:\windows to c:\python23.
This is zipped and available as over 100MB file to anyone to manually
unzip on his/her PC. This is a one time step.

On top of that there is 30K lines of code with over 100 .py files
application laid out within a directory tree. Very specific for the
domain, typical application. This again is zipped and available to
anyone as much smaller file to unzip and use. This step is per software
releases.

There is one obvious drawback - I can not separate python from standard
libraries easily. So when upgrade to 2.4 comes, I need to reinstall all
the packages. In order to address that as well as the Linux port I
project following structure:
-default python.org installation or one time step on Windows
-set of platform dependent libraries in directory A
-set of platform independent libraries in directory B
-application in directory C

This way I can easily port (or just use) entire software under
Linux/Unix yet do not have to worry about collecting all the packages
evry time I change the platform or the version of Python.

I hope I described it well enough. How to achieve it, is there any
better solution, or ready one. Please advice.

Thx in advance, A.
May 25 '06 #1
1 1616
AndyL wrote:
Hi,

let me describe how I do that today. There is standard python taken from
python.org installed in a c:\python23 with at least dozen different
additional python packages (e.g. SOAPpy, Twisted, wx, many smaller ones
etc) included. Also python23.dll moved from c:\windows to c:\python23.
This is zipped and available as over 100MB file to anyone to manually
unzip on his/her PC. This is a one time step.

On top of that there is 30K lines of code with over 100 .py files
application laid out within a directory tree. Very specific for the
domain, typical application. This again is zipped and available to
anyone as much smaller file to unzip and use. This step is per software
releases.

There is one obvious drawback - I can not separate python from standard
libraries easily.
True, python releases on windows are forward incompatible with C
extensions, so don't even think about that. I'm not even talking about
big pure python packages that could probably break because of small
subtle changes in python API between releases.
So when upgrade to 2.4 comes, I need to reinstall all
the packages.
Yes, but how much time it will *actually* take? I bet it's 1 hour.
Seriously, why don't you *time* it with a stopwatch? And then compare
that time to the time needed to debug the new release.
In order to address that as well as the Linux port I
project following structure:
-default python.org installation or one time step on Windows
-set of platform dependent libraries in directory A
-set of platform independent libraries in directory B
-application in directory C


I would suggest the same structure I described for deploying over LAN:
http://groups.google.com/group/comp....7115cb6?hl=en&

The only problem is that exemaker cannot find python relative to
itself, you will have to mash exemaker, python and application launcher
in one directory. So the layout is like this:

app/
engine/ -- directory with your actual application
app.exe -- renamed exemaker.exe
app.py -- dispatching module, see below
python.exe
python24.dll
lib -- python stdlib, etc

=== app.py ===
from engine import real_application
============

This way file engine/real_application.py is platform independant.

On Linux/Unix shell script is an equivalent of exemaker. Or C program
like exemaker, but you will have to compile it for all platforms.

May 25 '06 #2

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

Similar topics

2
by: Jim | last post by:
Can someone please explain the difference between Static Qt Applications and Dynamic Qt Applications? The Trolltech documentation only says that for Dynamic Qt Applications you need either qt.dll...
2
by: pieter.breed | last post by:
Hi All, The company I work for has traditionally used COM/ActiveX for the solutions that it provides. We are in the process of moving to .NET and a few applications have been written in VB.NET...
10
by: Gerben van Loon | last post by:
Hi there, hope someone can help me on this: I'm planning to deploy several ASP.NET projects to a production server. Normally I used the "Project / Copy project" option in VS.NET, but to this...
6
by: Ryan | last post by:
Is there any way to save a VB 2005 created application as an .MSI install file? The only method I see is to publish as a .EXE. Curious because I want to push out an application with Group Policy....
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
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,...
0
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...

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.