Why is the 9.0 runtime not loaded (instead of the 10.0 runtime), when the python compiler is v.1500? Seems like the cpython embedded in deadline is loading the wrong runtime?
That’s strange… might have to do some testing on our side to figure out what’s going on.
It definitely makes sense that it’s loading msvcr100 when embedding, since Deadline is built with VS2010 and would be loading those runtimes. Using your test code in dpython, I get that msvcr90 is loaded, which might explain the difference. I wonder if this is just a conflict between the runtimes that Deadline is built against vs the ones that our Python is, and I guess it just doesn’t surface for most things… Might have to take a look at rebuilding our cPython =/
Yeah most likely a conflict there… The thing is, deadline currently ships with the “official” python compiler for its internal cpython (v9 / msc1500). So its compatible with most downloaded pre-built binaries.
Maya / nuke etc are a bit special, they come with their own flavours of python. So in-house, we maintain about 6+ different binary sets based on qt & python compilers (tons of fun).
Should deadline change its internal version of the compiler, i hope it would fall into one of the existing combinations…, but it will most definitely have a side-effect on a lot of people using off the shelf binaries: they would have to start building their own versions of those libs.
Yeah… good point on the Python compatibility side. I don’t know that we’d want to move off of the standard MSVC if it will break literally everything else.
Have you guys been able to work around this conflict? I know I was looking at something similar with another client trying to load Draft inside of Nuke’s embedded Python, and I just couldn’t figure it out, for similar reasons (though OpenColorIO was the culprit that time).
Our current workaround is not ideal, we spawn a python process (from the python post task) that runs in standalone python. But we lose all logging etc.
This should be fixed in the binaries somehow, as other dll conflicts could also pop up randomly based when variables pass compiler boundaries.
Yeah, we’ll look into it. I’m sure it’s something we’re doing wrong on the Deadline-side that’s preventing Windows SxS from loading both version of the CRT properly…