Can multiprocessing.Process() use a different version of the interpreter?
robert.kern at gmail.com
Mon Oct 4 19:34:19 CEST 2010
On 10/4/10 11:39 AM, Scott Pigman wrote:
> I believe that the solution is to have both win32 and x64 versions of
> python installed, and then execute the win32 code inside of a new
> process which uses the win32 version of Python. I'm already using
> multiprocessing to run that code inside a new process because the two
> libraries have conflicts and need to run in separate memory space. If
> I could just specify that I want the new process to use a different
> version of the interpreter I think I'd be all set, but I don't see a
> way of doing that.
My previous statement notwithstanding, there is a way to hack this. The
windows-specific implementation of the class multiprocessing.forking.Popen uses
a global variable, _python_exe, to determine the executable to use. Instead, you
could subclass Popen to use whatever executable you like and subclass Process to
use this Popen. See the source files process.py and forking.py in the
multiprocessing package. It should be straightforward to attempt, but I don't
know for sure that it will work.
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Python-list