簡體   English   中英

如何從 Python 執行 Common Lisp 代碼

[英]How to execute Common Lisp code from Python

我想通過 shell 從 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 命令行 arguments

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

但是,您可能希望使用更現代的界面而不是os.system 它還將避免需要 escaping 報價 &c:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM