Ошибка импорта Ironclad/Numpy, но работает в консоли eclipse


Я пытаюсь использовать numpy с ironpython.

Когда я следую примеру в документации ironclad, запущенной в окне консоли, я получаю эту ошибку.

C:>ipy
IronPython 2.6 (2.6.10920.0) on .NET 2.0.50727.3603
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> import ironclad
>>> dir()
['__builtins__', '__doc__', '__name__', 'ironclad', 'sys']
>>> sys.path
['.', 'C:\', 'C:\', 'C:\Program Files\IronPython 2.6\Lib', 'C:\Program Files\IronPython 2.6\DLLs', 'C:\Program Files\IronPython 2.6', 'C:\Program Files\IronPython 2.6\lib\site-packages']
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:Program FilesIronPython 2.6libsite-packagesnumpy__init__.py", line 130, in C:Program FilesIronPython 2.6libsite-packagesnumpy__init__.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpyadd_newdocs.py", line 9, in C:Program FilesIronPython 2.6libsite-packagesnumpyadd_newdocs.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpylib__init__.py", line 4, in C:Program FilesIronPython 2.6libsite-packagesnumpylib__init__.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpylibtype_check.py", line 8, in C:Program FilesIronPython 2.6libsite-packagesnumpylibtype_check.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpycore__init__.py", line 34, in C:Program FilesIronPython 2.6libsite-packagesnumpycore__init__.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpytesting__init__.py", line 12, in C:Program FilesIronPython 2.6libsite-packagesnumpytesting__init__.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpytestingnumpytest.py", line 8, in C:Program FilesIronPython 2.6libsite-packagesnumpytestingnumpytest.py
AttributeError: 'module' object has no attribute '_getframe'
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:Program FilesIronPython 2.6libsite-packagesnumpy__init__.py", line 130, in C:Program FilesIronPython 2.6libsite-packagesnumpy__init__.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpyadd_newdocs.py", line 9, in C:Program FilesIronPython 2.6libsite-packagesnumpyadd_newdocs.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpylib__init__.py", line 4, in C:Program FilesIronPython 2.6libsite-packagesnumpylib__init__.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpylibtype_check.py", line 8, in C:Program FilesIronPython 2.6libsite-packagesnumpylibtype_check.py
File "C:Program FilesIronPython 2.6libsite-packagesnumpycore__init__.py", line 27, in C:Program FilesIronPython 2.6libsite-packagesnumpycore__init__.py
NameError: global name 'numeric' is not defined

Однако, если я запускаю тот же пример из консоли IronPython в eclipse, это, кажется, работает.

>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
C:Program FilesIronPython 2.6ipy.exe 2.6.0 (IronPython 2.6 (2.6.10920.0) on .NET 2.0.50727.3603)
C:Program FilesIronPython 2.6Libxmllib.py:1: DeprecationWarning: The xmllib module is obsolete.  Use xml.sax instead.
  """A parser for XML, using the derived class as static DTD."""
>>> import ironclad
>>> dir()
['__builtins__', 'ironclad', 'sys']
>>> sys.path
['C:\Program Files\pythonxy\eclipse\plugins\org.python.pydev_1.5.0.1251989166\PySrc', '.', 'U:\Python', 'U:\Python', 'C:\Program Files\IronPython 2.6\Lib', 'C:\Program Files\IronPython 2.6\DLLs', 'C:\Program Files\IronPython 2.6', 'C:\Program Files\IronPython 2.6\lib\site-packages']
>>> import numpy
>>> x = numpy.zeros(5)
>>> x
array([ 0.,  0.,  0.,  0.,  0.])
>>> 

Что eclipse или PyDev делают по-другому, что заставляет это работать?

1 2

1 ответ:

ipy.exe -X:Frames должно работать, так как поддержка _getframe необязательна в IronPython.