Please reply via the list instead of sending off-list responses.

I am not an expert on the multiprocessing module, but a quick check: You are calling multiprocessing.freeze_support() at the beginning of your program, right?  See:

When you create a new process on a Windows platform, the underlying system call is CreateProcess().  Error code 14001 is ERROR_SXS_CANT_GEN_ACTCTX.  This indicates a problem with your side-by-side (SxS) assembly.  Normally, an error like this would also occur with any other method of starting your program.  Are you saying you can invoke your program normally, but the multiprocessing module can't re-invoke it?  I'm not sure why that would happen.  Perhaps someone with more knowledge of the multiprocessing module could provide some insight.

Python 2.6 is built with MSVC 9.0, and more critically, the py2exe stub executable for Python 2.6 is built with MSVC 9.0.  So your issue is almost certainly because of msvcr90.dll and/or related DLLs.  The easiest solution is to make sure that your target machine has the Microsoft Visual C++ 2008 Redistributable Package installed.  Here's a link:

If you really don't want to deploy the MSVC redistributable package into the target computer's native assembly cache, then you will need to package all the necessary DLLs and/or manifest files (including Microsoft.VC90.CRT.manifest, and any DLLs that it references) in your installer, and deploy them to the same location as your executable file.  (Also, any re-invocation of your executable file via the multiprocessing or subprocess modules should execute it from a location where these files are available.)  Dependency Walker is an invaluable tool for tracking what DLLs are being referenced by your executable.  You can get it from:

As I mentioned in my previous email, there have been many discussions of related issues on this list in the last few months.  I would recommend you read through the archives of the list, since that will probably answer your question(s) better than I can.

- Daniel.

cool-RR wrote:
Python: 2.6.2c1
py2exe: 0.6.9
Windows: XP Pro

I'm not sure what "CreateProcess" means in this context. I am creating a process with the multiprocessing package, is this what this is about?

I'm not sure whether `msvcr90.dll` is the thing - How should I know? The only thing I got was the CreateProcess error message.

On Thu, Jun 25, 2009 at 8:57 PM, Daniel Pryden <> wrote:
It might help if you could provide some version numbers.  Python
version, py2exe version, Windows version, etc.  Also, how are you
invoking CreateProcess?

If you're using Python 2.6.x and/or Python 3.x, the issue is probably
related to the Microsoft Visual C Runtime 9.0 library (msvcr90.dll)
and/or its manifest.  (Is this the "some MS redistributable something"
that you refer to?  I can't read your mind, you know.)  See the list
archives for lots and lots of discussion of this issue.

- Daniel.

cool-RR wrote:
> Does anyone have an idea?  I would really like to resolve this before
> EuroPython.
> Thanks,
> Ram.
> On Tue, Jun 23, 2009 at 1:11 PM, cool-RR <
> <>> wrote:
>     I have a problem: I used py2exe for my program, and it worked on my
>     computer. I packaged it with Inno Setup (still worked on my
>     computer), but when I sent it to a different computer, I got the
>     following error when trying to run the application: "CreateProcess
>     failed; code 14001." The app won't run.
>     I googled for it a bit and found that the the user should install
>     some MS redistributable something, but I don't want to make life
>     complicated for my users. Is there a solution?