[IronPython] Problem loading IronPython on Vista 64

Curt Hagenlocher curt at hagenlocher.org
Tue Mar 17 17:24:37 CET 2009


You might want to consider logging all binds and not just failures.

2009/3/17 Matt Channer <mchanner at gmail.com>

> I did try Assembly.LoadFile but this returned null, maybe for the same
> reason that I was seeing initially - whatever that is :-)
>
> Fuslogvw now seems to be reporting binding failures (the setting I have is
> to Log bind failures to disk).  Interestingly, none of the dlr / ipy
> assemblies are being logged here.
>
> I will write a simple test app to see if that exhibits the same problem.
>
> Thanks for the help!
>
>
> Matt
>
>
>
> 2009/3/17 Curt Hagenlocher <curt at hagenlocher.org>
>
>> Your explanation for the SysModule error sounds right -- if you use
>> Assembly.LoadFile instead, you'll probably avoid that exception.  What
>> settings are you using in fuslogvw?
>>
>>
>> 2009/3/17 Matt Channer <mchanner at gmail.com>
>>
>>> Hi,
>>>
>>> The machine is pretty clean and has no dlr / ipy assemblies in the gac.
>>>
>>> fuslogvw is not showing anything for me at the moment so I need to
>>> investigate that a bit more.
>>>
>>> I think the error in the SysModule constructor is because I used
>>> AppDomain.CurrentDomain.Load(byte[]) to try and work around the original
>>> issue (this was done in an AssemblyResolve event handler).
>>>
>>> Thanks,
>>>
>>> Matt
>>>
>>>
>>> 2009/3/17 Curt Hagenlocher <curt at hagenlocher.org>
>>>
>>> I don't know why there would be a difference between 32-bit and 64-bit,
>>>> but do you possibly have a copy of any of the IronPython bits in your GAC?
>>>>  As to the "invalid path" error, you're probably getting it from the line
>>>>
>>>> prefix =
>>>> Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
>>>>
>>>> which is consistent with some kind of assembly-loading weirdness.  Odd
>>>> that nothing shows in fuslogvw.
>>>>
>>>> 2009/3/17 Matt Channer <mchanner at gmail.com>
>>>>
>>>>>  Hi!
>>>>>
>>>>> I am using IronPython 2.0.1 in a hosted environment (c# application
>>>>> running on 64 bit Vista).  This works well when the application is compiled
>>>>> as a 32bit process, but I am getting the following error when running as an
>>>>> x64 process:
>>>>>
>>>>> *Could not load file or assembly 'Microsoft.Scripting,
>>>>> Version=0.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of
>>>>> its dependencies. The specified module could not be found.*
>>>>>
>>>>> Fuslogvw is not helping at the moment (nothing is reported there).  All
>>>>> ipy \ DLR assemblies are in a sub directory which is included in the
>>>>> assemblyBinding section of the apps config file (the error remains if they
>>>>> are in the exe directory as well).
>>>>>
>>>>> I tried a workaround (read: hack) by handling the AssemblyResolve event
>>>>> on the app domain and loading the files from a known directory.  The problem
>>>>> I then encountered is an exception in the IronPython.Runtime.SysModule
>>>>> constructor (line 46) as it sets the prefix variable to the directory
>>>>> containing the assembly, which fails as the Location is empty.
>>>>>
>>>>> Below is the full exception:
>>>>>
>>>>> *Microsoft.Scripting.InvalidImplementationException: Type
>>>>> 'IronPython.Runtime.PythonContext' doesn't provide a suitable public
>>>>> constructor or its implementation is faulty: The type initializer for
>>>>> 'IronPython.Runtime.SysModule' threw an exception. --->
>>>>> System.TypeInitializationException: The type initializer for
>>>>> 'IronPython.Runtime.SysModule' threw an exception. --->
>>>>> System.ArgumentException: The path is not of a legal form.
>>>>>    at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
>>>>>    at System.IO.Path.GetDirectoryName(String path)
>>>>>    at IronPython.Runtime.SysModule..cctor()
>>>>>    --- End of inner exception stack trace ---
>>>>>    at IronPython.Runtime.SysModule.PerformModuleReload(PythonContext
>>>>> context, IAttributesCollection dict)
>>>>>    at IronPython.Runtime.PythonContext..ctor(ScriptDomainManager
>>>>> manager, IDictionary`2 options)
>>>>>    --- End of inner exception stack trace ---
>>>>>    at Microsoft.Scripting.Utils.ReflectionUtils.CreateInstance[T](Type
>>>>> actualType, Object[] args)
>>>>>    at
>>>>> Microsoft.Scripting.Runtime.LanguageConfiguration.LoadLanguageContext(ScriptDomainManager
>>>>> domainManager, Boolean& alreadyLoaded)
>>>>>    at
>>>>> Microsoft.Scripting.Runtime.DlrConfiguration.LoadLanguageContext(ScriptDomainManager
>>>>> manager, LanguageConfiguration config)
>>>>>    at
>>>>> Microsoft.Scripting.Runtime.DlrConfiguration.TryLoadLanguage(ScriptDomainManager
>>>>> manager, AssemblyQualifiedTypeName providerName, LanguageContext& language)
>>>>>    at
>>>>> Microsoft.Scripting.Runtime.ScriptDomainManager.GetLanguageByTypeName(String
>>>>> providerAssemblyQualifiedTypeName)
>>>>>    at
>>>>> Microsoft.Scripting.Hosting.ScriptRuntime.GetEngineByTypeName(String
>>>>> assemblyQualifiedTypeName)
>>>>>    at IronPython.Hosting.Python.GetEngine(ScriptRuntime runtime)
>>>>>    at
>>>>> Idbs.ActivityBase.DataImport.Scripting.ScriptingHosts.PythonScriptingHost.CreateEngine(String
>>>>> configurationFile) in
>>>>> C:\svn\xe\branches\anaconda\Shared\ImportProviders\PythonScriptingProvider\ScriptingHosts\PythonScriptingHost.cs:line
>>>>> 148
>>>>>    at
>>>>> Idbs.ActivityBase.DataImport.Scripting.ScriptingHosts.PythonScriptingHost.ScriptCanMapByIdentifiers(String
>>>>> configurationFile) in
>>>>> C:\svn\xe\branches\anaconda\Shared\ImportProviders\PythonScriptingProvider\ScriptingHosts\PythonScriptingHost.cs:line
>>>>> 52*
>>>>>
>>>>> So my first question: how come the assemblies are not being found?
>>>>> Secondly, is the exception in SysModule something that I should log?
>>>>>
>>>>> Kind Regards,
>>>>>
>>>>> Matt
>>>>>
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at lists.ironpython.com
>>>>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.ironpython.com
>>>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.ironpython.com
>>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20090317/fcad95de/attachment.html>


More information about the Ironpython-users mailing list