[Distutils] problem with bdist_msi post-install script

Bill Janssen janssen at parc.com
Mon Mar 22 15:21:05 CET 2010


Martin v. Löwis <martin at v.loewis.de> wrote:

> > What does "The control ErrorIcon was not found on dialog ErrorDlg" mean?
> 
> It probably means it couldn't post the error message for the first
> error, because the icon to indicate "error" isn't included in the MSI
> file (which is a separate bug).

Yes, I started getting better errors when I added an icon back in.

> > What's a postinstall script supposed to return or exit
> > with to indicate success or failure, anyway?
> 
> It should return 0 as the exit code.

Thanks.  What if there's actually an error?  Just throw an exception?

> > Any ideas?
> 
> I can think of two reasons:
> a) it may dislike the double-backslash in the Python path. Try removing
> one of them

I was wondering about that.  There's this clause in add_find_python:

        add_data(self.db, "CustomAction",
                [("PythonFromMachine", 51+256, "PYTHONDIR", "[PYTHON.MACHINE]"),
                 ("PythonFromUser", 51+256, "PYTHONDIR", "[PYTHON.USER]"),
                 ("PythonExe", 51+256, "PYTHON", "[PYTHONDIR]\\python.exe"),
                 ("InitialTargetDir", 51+256, "TARGETDIR", "[PYTHONDIR]")])

and the backslash there seems redundant.  Changing it to
"[PYTHONDIR]python.exe" removes the extra backslash in the value of
PYTHON.  Shall I file a patch?

> b) the command line may need to repeat the executable name as argv0.

No, but that first arg, the name of the script file, should be quoted.

> I would use orca (from the platform SDK) to edit the MSI file, and see
> whether this fixes anything.

OK, thanks.

Bill


More information about the Distutils-SIG mailing list