Ticket #11462 (new)
Windows Python DLL issues
Reported by: | Martyn Gigg | Owned by: | Martyn Gigg |
---|---|---|---|
Priority: | major | Milestone: | Release 3.5 |
Component: | Python | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: |
Description
I was trying to start Mantid with “genie_python” for instrument control – if I use the python.exe bundled with Mantid, it works fine. If I start Mantid up then I get a “DLL loading error R6034” which comes from ipython -> pyreadline -> ctypes This issue can be reproduced in a clean Mantid install with the following command sequence typed in the scripting window:
import ctypes.util from ctypes import * from _ctypes import call_function from ctypes.wintypes import * msvcrt = cdll.LoadLibrary(ctypes.util.find_msvcrt()) Which gives the error: --------------------------------------------------------------------------- WindowsError Traceback (most recent call last) <ipython-input-5-fcdb85f037b8> in <module>() ----> 1 msvcrt = cdll.LoadLibrary(ctypes.util.find_msvcrt()) C:\MantidInstall\bin\lib\ctypes\__init__.pyc in LoadLibrary(self, name) C:\MantidInstall\bin\lib\ctypes\__init__.pyc in __init__(self, name, mode, handle, use_errno, use_last_error) WindowsError: [Error 1114] A dynamic link library (DLL) initialization routine failed
Using the python.exe bundled with Mantid find_msvcrt() returns “mscvr90.dll” . I know Mantid itself is built with Visual Studio 2012 (and hence bundles msvcr110.dll), but MantidPlot is linked again python27.dll that in turn is linked against msvcr90.dll Is find_msvcrt() getting confused by the presence of two CRTLs, or is there a missing Manifest file (as R6034 might suggest)?
Moved to R3.5 at the R3.4 code freeze