我有一个非常大的Lisp项目,我想用编程的方式将其输出管道到Python程序中,即使用Python对一些输入调用Lisp程序,并将输出返回Python。在
这个项目只使用Clozure Common Lisp(ccl64)进行编译,我确实试图找到一种方法将其转换为可执行文件(我使用的是macosx),但这会导致很多死路(我不是Lisp程序员)。在
Clozure Common Lisp的这个文档应该提供上述解决方案,但是我无法理解它。我制作的示例创建了一个文件,但终端不会将它们作为可执行文件运行。在
除了使用ccl64的save application函数之外,我尝试遵循这个问题的答案Compiling Common Lisp to an executable。在$ ccl64
Welcome to Clozure Common Lisp Version 1.9-dev-r15612M-trunk (DarwinX8664)!
? (in-package :ccl)
#
? (defun main () (print "hello"))
MAIN
? (save-application "hello" :toplevel-function #'main)
我试图使用Python的子进程来调用ccl64,运行Lisp程序,并获得输出。但是,由于某些原因,子进程拒绝运行ccl64命令。以下是我目前为止写的:
^{pr2}$
变量out应该包含从ccl64获取用法/帮助的输出。相反,我得到一个错误:Traceback (most recent call last):
File "sub.py", line 3, in
process = subprocess.Popen(['ccl64', '-h'], stdout=subprocess.PIPE)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
如何让Python调用ccl64并从Lisp项目获得输出?在