Python
This is a silent installer for Python.
Python 2.4 and higher are available as MSI packages, which are documented at http://www.python.org/download/releases/2.5/msi/
<?xml version="1.0" encoding="UTF-8"?>
<packages:packages
xmlns:packages="http://www.wpkg.org/packages" xmlns:wpkg="http://www.wpkg.org/wpkg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.wpkg.org/packages ../xsd/packages.xsd" >
<package id="python"
name="Python"
revision="%PKG_VERSION%-201204101449"
reboot="false"
priority="10">
<variable name="PKG_VERSION" value="2.7.2" />
<check type="logical" condition="or">
<check type="uninstall" condition="exists" path="Python %PKG_VERSION%" />
<check type="uninstall" condition="exists" path="Python %PKG_VERSION% (64-bit)" />
</check>
<install cmd='msiexec /qn /i "%SOFTWARE%\python\python-%version%.msi" ALLUSERS=1' architecture="x86"/>
<upgrade cmd='msiexec /qn /i "%SOFTWARE%\python\python-%version%.msi" ALLUSERS=1' architecture="x86"/>
<remove cmd='msiexec /qn /x"%SOFTWARE%\python\python-%version%.msi"' architecture="x86"/>
<install cmd='msiexec /qn /i "%SOFTWARE%\python\python-%PKG_VERSION%.amd64.msi" ALLUSERS=1' architecture="x64"/>
<upgrade cmd='msiexec /qn /i "%SOFTWARE%\python\python-%PKG_VERSION%.amd64.msi" ALLUSERS=1' architecture="x64"/>
<remove cmd='msiexec /qn /x"%SOFTWARE%\python\python-%PKG_VERSION%.amd64.msi"' architecture="x64"/>
</package>
</packages:packages>
For modules use easy_install, works with the most modules, download the script [1]ez_setup.py and the file distutils.cfg for config easy_install. use apache, easy_install get the files of modules (.exe, .egg):
distutils.cfg
[easy_install]
find_links= http://server.apache/pyeasy/
allow_hosts = *.apache
The easy_install get the modules (.exe,.egg) of apache server. The package for easy_install is:
<!--Easy Install python -->
<package
id="pyeasyinstall"
name="Easy Install Python"
revision="3"
reboot="false"
priority="398">
<depends package-id="python"/>
<check type="file" condition="exists" path="C:\Python25\Scripts\easy_install.exe" />
<install cmd='"C:\Python25\python" %SOFTWARE%\python\ez_setup.py' />
<install cmd='cmd /c xcopy /v /s /i /e /h /c /y /q "%SOFTWARE%\python\distutils.cfg" "C:\Python25\Lib\distutils\"' />
<upgrade cmd='"C:\Python25\python" %SOFTWARE%\python\ez_setup.py' />
<upgrade cmd='cmd /c xcopy /v /s /i /e /h /c /y /q "%SOFTWARE%\python\distutils.cfg" "C:\Python25\Lib\distutils\"' />
<remove cmd='cmd /c if exist "C:\Python25\python\Scripts\easy_install.exe" del "C:\Python25\python\Scripts\easy_install.exe"' >
<exit code="1" />
<exit code="0" />
</remove>
</package>
A template for the modules is:
<package
id="pynamemodule"
name="namemodule 2.0.1"
revision="0"
reboot="false"
priority="397">
<depends package-id="python"/>
<depends package-id="pyeasyinstall"/>
<check type="file" condition="exists" path="C:\Python25\Lib\site-packages\namemodule-2.0.1-py2.5-win32.egg" />
<install cmd='"C:\Python25\Scripts\easy_install.exe" --quiet namemodule' />
<upgrade cmd='"C:\Python25\Scripts\easy_install.exe" --quiet --upgrade pynamemodule' />
<remove cmd='cmd /c if exist "C:\Python25\Lib\site-packages\namemodule-2.0.1-py2.5-win32.egg" del "C:\Python25\Lib\site-packages\namemodule-2.0.1-py2.5-win32.egg"' >
<exit code="1" />
<exit code="0" />
</remove>
</package>