[Python.NET] avoiding runtime error R6034

Cameron Hayne cameron.hayne at introspect.ca
Sat Feb 21 00:21:49 CET 2015


I’ve started using the version of PythonDotNet from https://github.com/renshawbay/pythonnet
to call my Python modules from C#.
I encountered the Microsoft runtime error R6034 which
(according to <http://stackoverflow.com/questions/14552348/runtime-error-r6034-in-embedded-python-application>)
is caused by extra copies of the file "msvcr90.dll” in folders on the Windows execution PATH.
I worked around this problem by calling the following function in my initialization code.

def cleanWindowsPathOfCRuntimeDll():
    """
    This function changes the Windows execution PATH environment variable
    so as to exclude any folders that contain the file "msvcr90.dll".
    Apparently the existence of this file in the PATH causes runtime error R6034
    when using embedded Python.
    See: http://stackoverflow.com/questions/14552348/runtime-error-r6034-in-embedded-python-application
    """
    folderPaths = os.environ['path'].split(';')
    toExclude = list()
    for folderPath in folderPaths:
        if "msvcr90.dll" in map((lambda x:x.lower()), os.listdir(folderPath)):
            toExclude.append(folderPath)
            debugMsg(0, "excluding folder '%s' from PATH" % folderPath)
    os.environ['path'] = ';'.join([x for x in folderPaths
                                              if x not in toExclude])
# ——————————————————————————————————————

--
Cameron Hayne
cameron.hayne at introspect.ca





More information about the PythonDotNet mailing list