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.
>>> import sys
>>> from sage.all import *
>>> var('z')
z
>>> integrate(1/z, z)
log(z)
>>>


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:operate 'asdf:load-op :pythononlisp)

; loading system definition from /home/martin/.sbcl/systems/pythononlisp.asd
; into #<PACKAGE "ASDF0">
; registering #<SYSTEM #:PYTHONONLISP {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::py-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.
>>> If you can see this, Python is loaded and working
from sage.all import *
>>> Traceback (most recent call last):
  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'
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to