This is a read-only archive of lispforum.com. The forum was locked to new users and posts and is preserved here as static HTML from a database snapshot taken on 2019-09-07.

PythonOnLisp fails to properly load

3 posts · 1101 views

Lisp newbie here trying to get PythonOnLisp to properly load on a Windows XP (or cygwin) system. I've tried several different environments such as LispBox's CLISP, Cygwin's CLISP, GCL (no ASDF?), and SBCL. I've had the most progress in SBCL run stand-alone in windows, using ASDF, successfully loading all the dependencies and getting everything to compile. However, despite that... PythonOnLisp simply doesn't work.

Below you'll see an example output. The first half of the screen is some compilation warnings from PythonOnLisp. It returns T, and I ask for the Python REPL. Attempting the simple example on their homepage, (py::py "print \"Hello from python\"") will generate identical errors (even if I run it directly in the SBCL REPL, and not the python REPL).

I was running Python's latest 2.5, and tried 2.5.0, some 2.4.x version, 2.3.5, and now I'm at 2.3.0. I believe, as I reverted backwards, the error Python API error showed 1013, and as of 2.3.5 and earlier, its 1012. I was running the latest version of CFFI, and I tried reverting to an older version (cffi-060130).

http://i36.tinypic.com/33e28fq.png

Re: PythonOnLisp fails to properly load

PythonOnLisp has be abandoned for some time. I suppose that, if the Python C API hasn't changed much you could just change the version number in PythonOnLisp. The CLiki page suggests using either CLPython or Pyffi, but the first one is an incomplete reimplementation of Python, and I am not sure how useful it is right now, and the latter seems like a hack (no exported interface) which would require some more hacking to make it do what you want.

If you are not under significant time constraints I would suggest reading on CFFI and Python API and either writing an embedding library from scratch of extending Pyffi. This should be relatively simple, at least for limited applications, since Python interpreter was designed to be easily embedded.