Как поддержать numpy, scipy в ironpython 2.7.5

python numpy scipy ironpython enthought

863 просмотра

1 ответ

11 Репутация автора

Я использую пакет с тупыми яйцами из https://store.enthought.com/repo/.iron/, и он хорошо работает в Ironpython 2.7.3. в Windows 7. Но Ironpython 2.7.5 поддерживает поток установки pip, поэтому я обновляюсь до этой версии, но можно импортировать numpy в ironpython.

Я нахожу сообщение следующим образом:

Импортировать numpy Traceback (последний вызов был последним): Файл "", строка 1, в файле "D: \ MyDoc \ Training_Course \ ISP \ IronPython-2.7.5 \ IronPython-2.7.5 \ lib \ site- packages \ numpy__init __. py ", строка 155, в файле" D: \ MyDoc \ Training_Course \ ISP \ IronPython-2.7.5 \ IronPython-2.7.5 \ lib \ site- packages \ numpy \ core__init __. py ", строка 6, в файле" D: \ MyDoc \ Training_Course \ ISP \ IronPython-2.7.5 \ IronPython-2.7.5 \ lib \ site- packages \ numpy \ core \ multiarray.py ", строка 7, в 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, и в ответ они не планируют его обновлять. Они предложили мне обратиться за возможной поддержкой на этот форум. Так может ли кто-нибудь решить проблему, с которой я столкнулся?

Заранее спасибо.

Автор: Alan.Zhang Источник Размещён: 19.07.2016 08:29

Ответы (1)


1 плюс

63 Репутация автора

Прошло несколько месяцев, но ...

Необходимо включить ведение журнала ошибок привязки, как описано в сообщении об ошибке.

Чтобы включить ведение журнала ошибок привязки сборки, задайте для параметра реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) значение 1.

После этого вы сможете увидеть, где происходит сбой привязки сборки. В моем случае в GAC была политика издателя, перенаправляющая версию IronPython на то, чего не было в моей системе. Если это так, вам нужно закомментировать это в файле конфигурации.

Например, в policy.IronPython.config (вы сможете увидеть точное местоположение файла после включения регистрации ошибок привязки сборки), закомментируйте эти две строки примерно так:

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

Надеюсь, это поможет.

Автор: n.jmurov Размещён: 20.01.2017 03:04
Вопросы из категории :
32x32