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
[email protected]



_________________________________________________
Python.NET mailing list - [email protected]
https://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to