gpt4 book ai didi

python - 如何从 Python 执行 Common Lisp 代码

转载 作者:行者123 更新时间:2023-12-02 02:12:50 25 4
gpt4 key购买 nike

我想从 Python 执行 Common Lisp (SBCL) 代码,例如通过外壳。另外,我需要运行一个名为 Shop3 的 Lisp 库来执行我的 Lisp 代码。我尝试过:

os.system('sbcl && (asdf:load-system "shop3") && (in-package:SHOP-USER) && (load "/Users/kiliankramer/Desktop/Shop-Planer/planner-new")')

但它不起作用,它只是启动 sbcl,然后在加载 asdf 库“shop3”之前停止。

你能告诉我如何执行我的 Lisp 代码吗?或者我必须用什么替代方法来运行外部 Lisp 程序(包括 Lisp 库)来执行它?

谢谢转发。 :)

最佳答案

&& 链接 shell 命令。即,它启动 sbcl 并等待其终止,如果终止成功,那么它将尝试执行 (asdf:load-system "shop3") 作为shell 命令(不是您想要的!)

您需要使用sbcl command line arguments :

os.system("sbcl --eval '(asdf:load-system \\"shop3\\")' --eval '(in-package :SHOP-USER)' --load /Users/kiliankramer/Desktop/Shop-Planer/planner-new")

但是,您可能想使用 the more modern interface而不是os.system 。它还将避免转义引号 &c 的需要:

subprocess.run(["sbcl","--eval",'(asdf:load-system "shop3")',
"--eval",'(in-package :SHOP-USER)',
"--load","/Users/kiliankramer/Desktop/Shop-Planer/planner-new")

关于python - 如何从 Python 执行 Common Lisp 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67521659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com