views:

284

answers:

1

I am trying to use numpy with ironpython.

When I follow the example in the ironclad documentation, running in a console window, I get this error.

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 Files\IronPython 2.6\lib\site-packages\numpy\__init__.py", line 130, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\__init__.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\add_newdocs.py", line 9, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\add_newdocs.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\__init__.py", line 4, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\__init__.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\type_check.py", line 8, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\type_check.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\core\__init__.py", line 34, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\core\__init__.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\testing\__init__.py", line 12, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\testing\__init__.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\testing\numpytest.py", line 8, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\testing\numpytest.py
AttributeError: 'module' object has no attribute '_getframe'
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\__init__.py", line 130, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\__init__.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\add_newdocs.py", line 9, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\add_newdocs.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\__init__.py", line 4, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\__init__.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\type_check.py", line 8, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\lib\type_check.py
File "C:\Program Files\IronPython 2.6\lib\site-packages\numpy\core\__init__.py", line 27, in C:\Program Files\IronPython 2.6\lib\site-packages\numpy\core\__init__.py
NameError: global name 'numeric' is not defined

However if I run the same example from an IronPython console within eclipse it seem to work.

>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
C:\Program Files\IronPython 2.6\ipy.exe 2.6.0 (IronPython 2.6 (2.6.10920.0) on .NET 2.0.50727.3603)
C:\Program Files\IronPython 2.6\Lib\xmllib.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.])
>>> 

What is eclipse or PyDev doing differently that is causing this to run?

+4  A: 

ipy.exe -X:Frames should work, as _getframe support is optional in IronPython.

Michael Greene
on my system that was the difference between success and failure
djlawler