如何支持numpy,scipy in ironpython 2.7.5

时间:2016-07-19 08:30:00

标签: python numpy scipy ironpython enthought

我使用来自https://store.enthought.com/repo/.iron/的numpy,scipy egg包,它在ironpy 2.7.3中表现良好。在Window 7中。 但是ironpython 2.7.5支持pip安装流程,所以我升级到这个版本但是可以在ironpython中导入numpy。

我发现消息如下:

  
    
      

导入numpy           Traceback(最近一次调用最后一次):            文件"",第1行,in            文件" D:\ MyDoc \ Training_Course \ ISP \ IronPython-2.7.5 \ IronPython-2.7.5 \ lib \ site-           packages \ numpy__init __。py",第155行,in            文件" D:\ MyDoc \ Training_Course \ ISP \ IronPython-2.7.5 \ IronPython-2.7.5 \ lib \ site-           packages \ numpy \ core__init __。py",第6行,in            文件" D:\ MyDoc \ Training_Course \ ISP \ IronPython-2.7.5 \ IronPython-2.7.5 \ lib \ site-           packages \ numpy \ core \ multiarray.py",第7行,in           ImportError:没有名为NumpyDotNet的模块

    
  

所以我将IronPython-2.7.5 \ DLLs * .dll复制到IronPython-2.7.5文件夹并解决NumpyDotNet模块未找到的问题,但又出现了一个问题,我列出如下:

D:\MyDoc\Training_Course\ISP\IronPython-2.7.5\IronPython-2.7.5>ipy
IronPython 2.7.5 (2.7.5.0) on .NET 4.0.30319.34209 (32-bit)
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "D:\MyDoc\Training_Course\ISP\IronPython-2.7.5\IronPython-2.7.5\lib\site-
packages\numpy\__init__.py", line 155, in <module>
 File "D:\MyDoc\Training_Course\ISP\IronPython-2.7.5\IronPython-2.7.5\lib\site-
packages\numpy\core\__init__.py", line 6, in <module>
 File "D:\MyDoc\Training_Course\ISP\IronPython-2.7.5\IronPython-2.7.5\lib\site-
packages\numpy\core\multiarray.py", line 6, in <module>
IOError: System.IO.FileLoadException: Could not load file or assembly 'IronPytho
n, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1' or one of
 its dependencies. The located assembly's manifest definition does not match the
 assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'IronPython, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c
5b713576e1'
 at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, Int
Ptr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInst
Count, ObjectHandleOnStack type)
 at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32
typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] met
hodInstantiationContext)
 at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] ge
nericTypeArguments, Type[] genericMethodArguments)
 at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttrib
uteRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, Runtime
Module decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilte
rType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes,
RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters
, Boolean& isVarArg)
 at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decora
tedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFi
lterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecorate
dTargetSecurityTransparent)
 at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly asse
mbly, RuntimeType caType)
 at System.Reflection.RuntimeAssembly.GetCustomAttributes(Type attributeType,
Boolean inherit)
 at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType,
 Boolean inherit)
 at Microsoft.Scripting.Utils.ReflectionUtils.GetCustomAttributes[T](Assembly
assembly, Boolean inherit)
 at IronPython.Runtime.Binding.PythonBinder.DomainManager_AssemblyLoaded(Objec
t sender, AssemblyLoadedEventArgs e)
 at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
 at Microsoft.Scripting.Runtime.ScriptDomainManager.LoadAssembly(Assembly asse
mbly)
 at IronPython.Runtime.ClrModule.AddReference(CodeContext context, Assembly as
sembly)
 at IronPython.Runtime.ClrModule.AddReference(CodeContext context, String name
)
 at IronPython.Runtime.ClrModule.AddReference(CodeContext context, Object refe
rence)
 at IronPython.Runtime.ClrModule.AddReference(CodeContext context, Object[] re
ferences)
 at Microsoft.Scripting.Interpreter.ActionCallInstruction`2.Run(InterpretedFra
me frame)
 at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
 at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0
, T1 arg1, T2 arg2, T3 arg3)
 at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite s
ite, T0 arg0, T1 arg1, T2 arg2)
 at Microsoft.Scripting.Interpreter.FuncCallInstruction`6.Run(InterpretedFrame
 frame)
 at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
 at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0
, T1 arg1, T2 arg2, T3 arg3)
 at IronPython.Compiler.Ast.CallExpression.Invoke1Instruction.Run(InterpretedF
rame frame)
 at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
 at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
 at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)
 at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope)
 at IronPython.Runtime.PythonContext.InitializeModule(String fileName, ModuleC
ontext moduleContext, ScriptCode scriptCode, ModuleOptions options)
 at IronPython.Runtime.PythonContext.CompileModule(String fileName, String mod
uleName, SourceUnit sourceCode, ModuleOptions options, ScriptCode& scriptCode)
 at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext context, Stri
ng name, String path)
 at IronPython.Runtime.Importer.LoadFromDisk(CodeContext context, String name,
 String fullName, String str)
 at IronPython.Runtime.Importer.ImportFromPathHook(CodeContext context, String
 name, String fullName, List path, Func`5 defaultLoader)
 at IronPython.Runtime.Importer.ImportFromPath(CodeContext context, String nam
e, String fullName, List path)
 at IronPython.Runtime.Importer.ImportModule(CodeContext context, Object globa
ls, String modName, Boolean bottom, Int32 level)
 at IronPython.Modules.Builtin.__import__(CodeContext context, String name, Ob
ject globals, Object locals, Object fromlist, Int32 level)
 at IronPython.Runtime.Importer.ImportLightThrow(CodeContext context, String f
ullName, PythonTuple from, Int32 level)
 at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext context, Str
ing fullName, Int32 level)
 at Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame
 frame)
 at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
 at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
 at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)
 at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope)
 at IronPython.Runtime.PythonContext.InitializeModule(String fileName, ModuleC
ontext moduleContext, ScriptCode scriptCode, ModuleOptions options)
 at IronPython.Runtime.PythonContext.CompileModule(String fileName, String mod
uleName, SourceUnit sourceCode, ModuleOptions options, ScriptCode& scriptCode)
 at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext context, Stri
ng name, String path)
 at IronPython.Runtime.Importer.LoadPackageFromSource(CodeContext context, Str
ing name, String path)
 at IronPython.Runtime.Importer.LoadFromDisk(CodeContext context, String name,
 String fullName, String str)
 at IronPython.Runtime.Importer.ImportFromPathHook(CodeContext context, String
 name, String fullName, List path, Func`5 defaultLoader)
 at IronPython.Runtime.Importer.ImportFromPath(CodeContext context, String nam
e, String fullName, List path)
 at IronPython.Runtime.Importer.ImportModule(CodeContext context, Object globa
ls, String modName, Boolean bottom, Int32 level)
 at IronPython.Modules.Builtin.__import__(CodeContext context, String name, Ob
ject globals, Object locals, Object fromlist, Int32 level)
 at IronPython.Runtime.Importer.ImportLightThrow(CodeContext context, String f
ullName, PythonTuple from, Int32 level)
 at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext context, Str
ing fullName, Int32 level)
 at Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame
 frame)
 at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
 at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
 at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)
 at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope)
 at IronPython.Runtime.PythonContext.InitializeModule(String fileName, ModuleC
ontext moduleContext, ScriptCode scriptCode, ModuleOptions options)
 at IronPython.Runtime.PythonContext.CompileModule(String fileName, String mod
uleName, SourceUnit sourceCode, ModuleOptions options, ScriptCode& scriptCode)
 at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext context, Stri
ng name, String path)
 at IronPython.Runtime.Importer.LoadPackageFromSource(CodeContext context, Str
ing name, String path)
 at IronPython.Runtime.Importer.LoadFromDisk(CodeContext context, String name,
 String fullName, String str)
 at IronPython.Runtime.Importer.ImportFromPathHook(CodeContext context, String
 name, String fullName, List path, Func`5 defaultLoader)
 at IronPython.Runtime.Importer.ImportFromPath(CodeContext context, String nam
e, String fullName, List path)
 at IronPython.Runtime.Importer.ImportTopAbsolute(CodeContext context, String
name)
 at IronPython.Runtime.Importer.ImportModule(CodeContext context, Object globa
ls, String modName, Boolean bottom, Int32 level)
 at IronPython.Modules.Builtin.__import__(CodeContext context, String name, Ob
ject globals, Object locals, Object fromlist, Int32 level)
 at Microsoft.Scripting.Interpreter.FuncCallInstruction`7.Run(InterpretedFrame
 frame)
 at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
 at Microsoft.Scripting.Interpreter.LightLambda.Run7[T0,T1,T2,T3,T4,T5,T6,TRet
](T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
 at IronPython.Runtime.Importer.ImportLightThrow(CodeContext context, String f
ullName, PythonTuple from, Int32 level)
 at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext context, Str
ing fullName, Int32 level)
 at Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame
 frame)
 at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
 at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 a
rg1)
 at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx)
 at IronPython.Compiler.PythonScriptCode.Run(Scope scope)
 at IronPython.Hosting.PythonCommandLine.<>c__DisplayClass1.<RunOneInteraction
>b__0()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\M
icrosoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure lo
gging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fus
ion!EnableLog].

我曾经问过Enthought支持,他们的回应是没有计划再升级它。他们建议我在这个论坛上寻求可能的支持 那么任何人都有解决我遇到的问题的解决方案吗?

提前感谢您。

1 个答案:

答案 0 :(得分:1)

已经过了几个月但是......

您需要按照错误消息

中的说明启用绑定失败日志记录
  

要启用程序集绑定失败日志记录,请设置注册表值   [HKLM \ Software \ M icrosoft \ Fusion!EnableLog](DWORD)为1。

然后,您将能够看到程序集绑定失败的位置。就我而言,GAC中有一个发布者政策将IronPython版本重定向到我的系统上不存在的东西。如果是这样,您需要在配置文件中对其进行注释。

E.g。在policy.IronPython.config中(一旦您启用了程序集绑定失败日志记录,您就能够看到确切的文件位置),请像这样注释掉这两行:

#         <bindingRedirect oldVersion="2.7.0.40"
#                          newVersion="2.7.5.0"/>

希望它有所帮助。