Martin v. Löwis
But this doesn't look quite complete. I don't see where the Python interpreter is actually invoked here. (Cute trick swapping the args, by the way).
Which is presumably why, in finalize_options, we find:
if self.pre_install_script: raise DistutilsOptionError, "the pre-install-script feature is not yet implemented"
Shouldn't the custom action be this:
add_data(self.db, "CustomAction", [("PreInstall", 2, "PreInstall", '"PYTHON"'), ])
I don't remember the details, but one problem might have been that custom action 2 is defined as "EXE file stored in a Binary table stream." Not sure whether batch files are even allowed here.
Apparently not. MSI (s) (2C:A0) [10:44:12:462]: Doing action: PreInstall Action 10:44:12: PreInstall. Action start 10:44:12: PreInstall. MSI (s) (2C:A0) [10:44:12:492]: Note: 1: 1721 2: PreInstall 3: C:\WINDOWS\Installer\MSIB7.tmp 4: "C:\Python26\\python.exe" MSI (s) (2C:A0) [10:44:12:492]: Note: 1: 2262 2: Error 3: -2147287038 MSI (c) (6C:C4) [10:44:12:502]: Note: 1: 2262 2: Error 3: -2147287038 DEBUG: Error 2888: Executing the Binary view failed The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2888. The arguments are: Binary, , Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: PreInstall, location: C:\WINDOWS\Installer\MSIB7.tmp, command: "C:\Python26\\python.exe" MSI (s) (2C:A0) [10:44:14:545]: Note: 1: 2262 2: Error 3: -2147287038 MSI (s) (2C:A0) [10:44:14:545]: Product: UpLib-1.7.9 -- Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: PreInstall, location: C:\WINDOWS\Installer\MSIB7.tmp, command: "C:\Python26\\python.exe" Action ended 10:44:14: PreInstall. Return value 3. Looks like we need JScript (what can that do, though?) or VBScript. By the way, the double backslashes don't seem to be a problem. Bill