[IronPython] Problem loading IronPython on Vista 64

Matt Channer mchanner at gmail.com
Tue Mar 17 16:51:17 CET 2009


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20090317/cbc017af/attachment.html>


More information about the Ironpython-users mailing list