[英]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.