M
Martin Rubey
Dear all,
I'm trying to call from common lisp functions written for Sage
(www.sagemath.org), which in turn is written in python. To do so, I tried
http://common-lisp.net/project/python-on-lisp/. It was quite easy to get it to
run and do some simple things with python.
However, I was unable to get sage to run within it.
If I start my local python 2.5 and follow (roughly)
http://www.sagemath.org/doc/tut/node55.html
it works nicely:
[email protected]:~/Documents/sage-3.1.4/local/bin$ . ./sage-env
[email protected]:~/Documents/sage-3.1.4/local/bin$ /usr/bin/python
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
But not so from within python-on-lisp. Below the complete log. But actually,
the first warning occurs already when importing sys (I have little python
experience and no idea what sys contains)
sys:1: RuntimeWarning: Python C API version mismatch for module pol: This Python has API version 1013, module pol has version 1011.
As far as I understand python on lisp, it provides an interface to the python
library:
(cffi:define-foreign-library python-library
darwin
framework "Python"))
unix
or "libpython2.5.so.1.0" "libpython2.4.so.1.0"
"libpython2.3.so.1.0"))
windows
or "python25.dll" "python24.dll" "python23.dll") )
(t
default "libpython")))
Sage comes with it's own python, however, without a library. On the otherhand,
above I demonstrated that sage also works with the python interpreter that
comes with kubuntu. (maybe it needs the interpreter, and the library is not
sufficient?)
Help would be greatly appreciated.
Martin
[email protected]:~/Documents/sage-3.1.4/local/bin$ sbcl
This is SBCL 1.0.11.debian, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (asdf
perate 'asdf:load-op
ythononlisp)
; loading system definition from /home/martin/.sbcl/systems/pythononlisp.asd
; into #<PACKAGE "ASDF0">
; registering #<SYSTEM #
YTHONONLISP {A98B239}> as PYTHONONLISP
; loading system definition from /home/martin/.sbcl/systems/cffi.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM CFFI {AAF00B1}> as CFFI
; loading system definition from /home/martin/.sbcl/systems/babel.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM BABEL {AC6A4D9}> as BABEL
; loading system definition from /home/martin/.sbcl/systems/alexandria.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM :ALEXANDRIA {ADE1199}> as ALEXANDRIA
; loading system definition from
; /home/martin/.sbcl/systems/trivial-features.asd into #<PACKAGE "ASDF0">
; registering #<SYSTEM TRIVIAL-FEATURES {AF0F739}> as TRIVIAL-FEATURES
....<snip>
; compilation unit finished
; caught 11 STYLE-WARNING conditions
; printed 4 notes
NIL
* (py:
y-repl)
Welcome to the Python-on-lisp REPL emulator - enter on a blank line to quit
import sys
sys:1: RuntimeWarning: Python C API version mismatch for module pol: This Python has API version 1013, module pol has version 1011. File "<string>", line 9, in <module>
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/all.py",
; line 58, in <module>
from sage.misc.all import * # takes a while
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/misc/all.py",
; line 16, in <module>
from sage_timeit_class import timeit
File "sage_timeit_class.pyx", line 3, in sage.misc.sage_timeit_class
; (sage/misc/sage_timeit_class.c:523)
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/misc/sage_timeit.py",
; line 12, in <module>
import timeit as timeit_, time, math, preparser, interpreter
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/misc/interpreter.py",
; line 99, in <module>
import IPython.ipapi
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/__init__.py",
; line 57, in <module>
__import__(name,glob,loc,[])
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/ipstruct.py",
; line 22, in <module>
from IPython.genutils import list2dict2
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/genutils.py",
; line 116, in <module>
Term = IOTerm()
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/genutils.py",
; line 112, in __init__
self.cout = IOStream(cout,sys.stdout)
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/genutils.py",
; line 80, in __init__
self.flush = stream.flush
AttributeError: Sout instance has no attribute 'flush'
I'm trying to call from common lisp functions written for Sage
(www.sagemath.org), which in turn is written in python. To do so, I tried
http://common-lisp.net/project/python-on-lisp/. It was quite easy to get it to
run and do some simple things with python.
However, I was unable to get sage to run within it.
If I start my local python 2.5 and follow (roughly)
http://www.sagemath.org/doc/tut/node55.html
it works nicely:
[email protected]:~/Documents/sage-3.1.4/local/bin$ . ./sage-env
[email protected]:~/Documents/sage-3.1.4/local/bin$ /usr/bin/python
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
But not so from within python-on-lisp. Below the complete log. But actually,
the first warning occurs already when importing sys (I have little python
experience and no idea what sys contains)
sys:1: RuntimeWarning: Python C API version mismatch for module pol: This Python has API version 1013, module pol has version 1011.
As far as I understand python on lisp, it provides an interface to the python
library:
(cffi:define-foreign-library python-library
"libpython2.3.so.1.0"))
(t
Sage comes with it's own python, however, without a library. On the otherhand,
above I demonstrated that sage also works with the python interpreter that
comes with kubuntu. (maybe it needs the interpreter, and the library is not
sufficient?)
Help would be greatly appreciated.
Martin
[email protected]:~/Documents/sage-3.1.4/local/bin$ sbcl
This is SBCL 1.0.11.debian, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (asdf
; loading system definition from /home/martin/.sbcl/systems/pythononlisp.asd
; into #<PACKAGE "ASDF0">
; registering #<SYSTEM #
; loading system definition from /home/martin/.sbcl/systems/cffi.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM CFFI {AAF00B1}> as CFFI
; loading system definition from /home/martin/.sbcl/systems/babel.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM BABEL {AC6A4D9}> as BABEL
; loading system definition from /home/martin/.sbcl/systems/alexandria.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM :ALEXANDRIA {ADE1199}> as ALEXANDRIA
; loading system definition from
; /home/martin/.sbcl/systems/trivial-features.asd into #<PACKAGE "ASDF0">
; registering #<SYSTEM TRIVIAL-FEATURES {AF0F739}> as TRIVIAL-FEATURES
....<snip>
; compilation unit finished
; caught 11 STYLE-WARNING conditions
; printed 4 notes
NIL
* (py:
Welcome to the Python-on-lisp REPL emulator - enter on a blank line to quit
import sys
sys:1: RuntimeWarning: Python C API version mismatch for module pol: This Python has API version 1013, module pol has version 1011. File "<string>", line 9, in <module>
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/all.py",
; line 58, in <module>
from sage.misc.all import * # takes a while
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/misc/all.py",
; line 16, in <module>
from sage_timeit_class import timeit
File "sage_timeit_class.pyx", line 3, in sage.misc.sage_timeit_class
; (sage/misc/sage_timeit_class.c:523)
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/misc/sage_timeit.py",
; line 12, in <module>
import timeit as timeit_, time, math, preparser, interpreter
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/sage/misc/interpreter.py",
; line 99, in <module>
import IPython.ipapi
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/__init__.py",
; line 57, in <module>
__import__(name,glob,loc,[])
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/ipstruct.py",
; line 22, in <module>
from IPython.genutils import list2dict2
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/genutils.py",
; line 116, in <module>
Term = IOTerm()
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/genutils.py",
; line 112, in __init__
self.cout = IOStream(cout,sys.stdout)
File
; "/home/martin/Documents/sage-3.1.4/local/lib/python2.5/site-packages/IPython/genutils.py",
; line 80, in __init__
self.flush = stream.flush
AttributeError: Sout instance has no attribute 'flush'